如何使用awk在两行后打印新单词

如何使用awk在两行后打印新单词

我需要在我使用的文件中的两行之后插入一个空行

cat rat     hat
pot NOT     lot
big big     big
sit sit     sit
awk '{print};(NR%2==0){print ""}'
cat rat     hat
pot NOT     lot

big big     big
sit sit     sit

实际上我的主要目标是每两行后插入一个新单词,但我无法解决。

我该怎么办,因为我在第三列的另一个文件中有 <= 6000 个名称,甚至在这一列中也很少有只有 .(点) 的名称。

其次,我不想要最后一行之后的空行。

答案1

这看起来很完美,每两行插入固定的 WORD

awk '{print}
     (NR%2==0){printf "WORD\n"}'

我建议不要插入最后一行

awk 'NR>2 && (NR%2==1) {printf "WORD\n"}
 { print ; }' 

行中的列数并不重要。

不过,只是猜测,这不是一个固定的词吗?一行字?最后一个 ?

awk 'NR>2 && (NR%2==1) {printf "%s\n",last}
 { print ; last=$NF ; }' 

这将每隔一行打印最后一个单词。

替换$NF$3得到第三个。

创建程序不仅仅是代码,而是能够向他人(和自己)描述要实现的目标。

答案2

使用 awk 我们可以在行号为偶数时打印新单词

awk '{{print $0}if(NR%2==0)print "word"}' 

相关内容