单词是一系列没有空格且没有\ n的字符。 在sed中编写一个脚本,它将参数作为文件名, 脚本输出文件中包含4个字的行。 此外,每一行都与正则表达式匹配,它的第一个单词必须成倍增加。
例如F1包含:
Hello hi 123
if a equals b
you
one abc two three four
dany uri four 123
如果输入P9.4 F1,脚本的文件名为P9.4,输出将为
if if a equals b
dany dany uri four 123
我实际上考虑过一个解决方案:
sed 's/\(^([ ]*[^ ]\+[ ]\+)[^ ]\+[ ]\+[^ ]\+[ ]\+[^ ]\+[ ]*$\)/\2&/' $1 >>tmp
我收到错误:
sed: -e expression #1, char 62: invalid reference \2 on `s' command's RHS
答案 0 :(得分:2)
$ sed -nr '/^(\w+)\s+\1\s+(\w+\s*){3}$/p' file
if if a equals b
dany dany uri four 123