我在打印/邮寄行业工作,经常发现有必要将标题或称呼合并到邮寄列表的名称字段中。给定以下文件格式:
**SEQ_NO** | **NAME** | **COMPANY** | **so on**
:------------ | :-------- | :----------------- | :---------------
1 | name1 | company1 | blahblah |
2 | name2 | company2 | blaseblah |
我打算做的是在每个名称的末尾添加“, DC”,结果是 name1, DC name2, DC
在 Awk 中使用以下内容(竖线分隔的文件输入和输出),在本网站上的另一个问题的帮助下,我已经尽可能接近:
awk -F'|' -vOFS='|' '{$2 = $2 ", DC" }1' [input file] > [output file]
但是,这会将附加文本添加到标题行中,我希望避免这种情况。当然,在一行上手动编辑不会花很长时间,但理想情况下,我想将上面的脚本合并到现有的 Perl 脚本中,并且想知道一种方法来实现我上面所做的结果,除了不必删除 ",第 2 列标题中的 DC"。
附言很抱歉格式问题,新来张贴在这里。
最佳答案
在您的代码中添加一个 NR > 2
条件。这意味着它只会对第 2 行及以上行生效。
$ gawk -F'|' -vOFS='|' 'NR > 2 {$2 = $2", DC" }1' data.txt
SEQ_NO | NAME | COMPANY | so on
:------------ | :-------- | :----------------- | :---------------
1 | name1 , DC| company1 | blahblah |
2 | name2 , DC| company2 | blaseblah |
关于linux - 如何将 "title"添加到 Awk 中的名称字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43266028/