如何在Unix Shell脚本

时间:2016-11-02 21:14:26

标签: shell unix

我有一个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”)?

1 个答案:

答案 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的更多信息。