我有一个UNIX Shell脚本问题。以下代码行:
sed'15s /.*/ 1 /'file1> file2的
关闭file1直到第15个元素(即行)更改它,并将修改后的文件写入file2。该文件看起来像这样(“垂直”):
HEADER 1
RECORD: COL1
1
1
1
1
1
1
1
1
2
1
1
0
1
0
0
现在,如果文件的内容是“水平”,如下所示:
HEADER 1
RECORD:COL1,COL2,COL3,COL4,COL5
1,0,4,0,3
如何修改上述代码以更改最后一个元素(即将“3”更改为“0”)?
答案 0 :(得分:0)
你想要使用awk,它非常善于操作记录中的字段。
在这种情况下,您需要声明字段分隔符是逗号,输出字段分隔符也是逗号。我假设您要更改特定的记录号(即行/行号)
awk '
BEGIN {FS = OFS = ","}
NR == 3 {$NF = 0}
{print}
' <<END
HEADER 1
RECORD:COL1,COL2,COL3,COL4,COL5
1,0,4,0,
END
有关awk tag info page的更多信息。