2016-11-02 136 views
0

我有一个UNIX Shell脚本问题。下面的代码行:如何在Unix Shell脚本中操作文件中的元素

sed的 '15S /.*/ 1 /' 文件1> 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

你会想要使用awk,它非常擅长处理记录中的字段。

在这种情况下,您需要声明字段分隔符是逗号,输出字段分隔符也是逗号。我会假设你想改变一个特定的记录数(即行/列数)在awk tag info page

awk ' 
    BEGIN {FS = OFS = ","} 
    NR == 3 {$NF = 0} 
    {print} 
' <<END 
HEADER 1 
RECORD:COL1,COL2,COL3,COL4,COL5 
1,0,4,0, 
END 

地段的详细信息。