【发布时间】:2016-08-28 03:52:55
【问题描述】:
$ cat file
aaa bbb ccc
ddd eee
jjj kkk lll
mmm
nnn ooo ppp
下面的 AWK 命令会将 'mmm' 行粘贴到 'ddd eee' 行的末尾。有没有更简单的方法可以使用 AWK 或 sed 来做到这一点?
$ awk 'FNR==NR {if (NR==4) foo=$0; next} FNR==2 {print $0" "foo; next} FNR==4 {next} 1' file file
aaa bbb ccc
ddd eee mmm
jjj kkk lll
nnn ooo ppp
澄清一下:我想在这个特定文件的第 2 行末尾粘贴第 4 行,在“ddd eee”和“mmm”之间有一个空格。这就是任务。有没有比我想出的更简单的 AWK 或 sed 解决方案?
【问题讨论】:
-
您如何知道何时需要
mmm行?你怎么知道它什么时候会出现?您是否试图确保每行出现相同数量的单词?单词的数量总是三个吗?如果该行包含mmm zzz而不仅仅是mmm,会发生什么?如果最后有几行带有ttt和uuu怎么办?应该有ddd eee ttt和mmm zzz uuu吗? ETC?到目前为止,这个问题的具体化程度严重不足,因此无法明智地回答。