-2

单词是没有空格和\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
4

1 回答 1

2
$ sed -nr '/^(\w+)\s+\1\s+(\w+\s*){3}$/p' file
if if a equals b
dany dany uri four 123
于 2013-01-25T15:56:12.973 回答