更改列中的值

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