如何跳过前7行(行(并在其余行上应用脚本?我尝试了下面的脚本,但不幸的是,它删除了文件中的所有内容,使其变为空。
awk 'NR > 7 { $1="XD"$1}' file> temp && mv temp file
你离目标不远了。只需将1
附加到脚本中(这将导致打印$0
(:
awk 'NR > 7 { $1="XD"$1} 1' file> temp && mv temp file
跳过的行数
使用next
语句跳过行
在剩余上应用脚本
您的脚本确实会更改字段值,但不会print
it
设file.txt
内容为
1 10 100
2 20 200
3 30 300
4 40 400
5 50 500
6 60 600
7 70 700
8 80 800
9 90 900
然后
awk 'NR<=7{next}{$1="XD"$1;print}' file.txt
给出输出
XD8 80 800
XD9 90 900
观察具有next
的模式动作对在其他动作之前。
(在gawk 4.2.1中测试(
完全参数化的基于awk
的解决方案::
- #行跳过
"__"
- 准备
"___"
的字符串
gawk '(__<NR) * ($_=___$_)^_' FS='^$' __=7 ___='XD' # gawk/nawk mawk '(__<NR) * ($!_=___$_)^_' FS='^$' __=7 ___='XD' # any mawk