sed-检测确切的长度和倍增的单词

时间:2013-01-25 15:47:58

标签: regex sed

单词是一系列没有空格且没有\ 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

1 个答案:

答案 0 :(得分:2)

$ sed -nr '/^(\w+)\s+\1\s+(\w+\s*){3}$/p' file
if if a equals b
dany dany uri four 123