【发布时间】:2021-01-07 19:01:10
【问题描述】:
我希望应用一些 awk 处理来将单词“OR”添加到每一行的开头,除了 用于第一行。但是,我仍然希望打印出第一行。
目前,我正在使用当前命令:
awk '$0="OR "$0' file.txt
这会给我以下输出:
OR line1
OR line2
OR line3 etc
我怎样才能让它吐出以下内容?:
line1
OR line2
OR line3 etc
【问题讨论】:
我希望应用一些 awk 处理来将单词“OR”添加到每一行的开头,除了 用于第一行。但是,我仍然希望打印出第一行。
目前,我正在使用当前命令:
awk '$0="OR "$0' file.txt
这会给我以下输出:
OR line1
OR line2
OR line3 etc
我怎样才能让它吐出以下内容?:
line1
OR line2
OR line3 etc
【问题讨论】:
你可以使用这个 awk:
awk 'NR > 1 {$0 = "OR " $0} 1' file
line1
OR line2
OR line3
这里NR > 1 条件将执行操作块,即$0 = "OR " $0 仅用于第二条记录,但1 将打印所有行。
【讨论】:
awk 'NR>1 && index($0, "OR") != 1{$0 = "OR " $0} 1' file,我们想在行首检查OR的存在
sed解决方案
$ sed '2,$s/^/OR /' file
开始第二行在每行的开头插入“OR”。
【讨论】:
awk 'NR==1 {print} NR>1 {print "OR "$0}'
【讨论】:
另一个 awk
$ cat justin.dat
line1
line2
line3
line4
$ awk ' { printf("%s%s\n",sep,$0); sep="OR " } ' justin.dat
line1
OR line2
OR line3
OR line4
$
【讨论】:
在此处添加另一种方法,使用 GNU awk 中的示例进行编写和测试。
awk '{print val $0; val="OR "}' Input_file
使用显示的示例,输出将如下所示。
line1
OR line2
OR line3
OR line4
【讨论】: