我尝试修改文件的一列,然后打印结果。
awk -F"|" '{ if(NR!=1){$5 = $5+0.1} print $0}' myfile
它执行了我想要的操作,但是在打印时,只有第一行保留其字段分隔符。(我不修改)。
所以我可以使用print $1"|"$2"|"$3"|"$4"|"$5"|"...
,但没有使用 $0 的解决方案吗? (例如,如果我不知道列数)
我相信,我可以轻松解决我的问题,但我现在sed
尝试学习。awk
答案1
@Sukminder 已经给出了简单的答案;我有一些关于示例代码的风格点和有用的语法(例如代码审查)。这最初是一条评论,但越来越长。
OFS
是输出字段分隔符,如前所述。
$0
是 - 的默认参数print
,无需显式指定。另一个风格点:awk
有所谓的“模式”,就像内置的条件块。所以你也可以使用:
awk -F'|' 'BEGIN {OFS = FS} NR != 1 {$5 += 0.1} {print}' myfile