更改列中的值
Change values in the column
我的 feature_vector.txt 文件有问题。
看起来像:
1,1
2,3
3,3
4,2
etc
我正在考虑使用 AWK 将第二列的值从第三行更改为零 (0),例如。第 20 行。
所以输出看起来像:
1,1
2,3
3,0
4,0
etc.
你有什么建议吗?
您可以使用:
awk -F, -v OFS=, 'NR>=3 && NR<=20 {=0} 1' file
-F,
将输入字段分隔符设置为逗号
-v OFS=,
将输出字段分隔符设置为逗号
NR>=3 && NR<=20
如果当前记录# 是 >= 3 and <= 20
则执行一个块
=0
会将第二个字段设置为 0
1
是打印值的默认 awk 操作
使用 awk:
~$ awk -F',' '(NR>3 && NR<6){print ",0"} (NR<=3||NR>=6)' f
1,1
2,2
3,3
4,0
5,0
6,6
7,7
8,8
9,9
10,10
使用 sed:
~$ sed '3,6 s/,.*/,0/' f
1,1
2,2
3,0
4,0
5,0
6,0
7,7
8,8
9,9
10,10
我的 feature_vector.txt 文件有问题。
看起来像:
1,1
2,3
3,3
4,2
etc
我正在考虑使用 AWK 将第二列的值从第三行更改为零 (0),例如。第 20 行。
所以输出看起来像:
1,1
2,3
3,0
4,0
etc.
你有什么建议吗?
您可以使用:
awk -F, -v OFS=, 'NR>=3 && NR<=20 {=0} 1' file
-F,
将输入字段分隔符设置为逗号-v OFS=,
将输出字段分隔符设置为逗号NR>=3 && NR<=20
如果当前记录# 是>= 3 and <= 20
则执行一个块
=0
会将第二个字段设置为 01
是打印值的默认 awk 操作
使用 awk:
~$ awk -F',' '(NR>3 && NR<6){print ",0"} (NR<=3||NR>=6)' f
1,1
2,2
3,3
4,0
5,0
6,6
7,7
8,8
9,9
10,10
使用 sed:
~$ sed '3,6 s/,.*/,0/' f
1,1
2,2
3,0
4,0
5,0
6,0
7,7
8,8
9,9
10,10