Regex sed-检测精确长度&;乘法字

Regex sed-检测精确长度&;乘法字,regex,sed,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,如果我们键入P9.4f1,输出将是 if if a equals b dany dany uri four 123 我实际上已

单词是没有空格和\n的字符序列。 在sed中编写一个脚本,其中获取一个文件名作为参数, 脚本输出文件中正好包含4个单词的行。 此外,每一行匹配正则表达式,它的第一个字必须相乘

例如,F1包含:

Hello hi 123
if a equals b
you
one abc two three four
dany uri four 123
脚本的文件名为P9.4,如果我们键入P9.4f1,输出将是

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

实际上,Iv'e所做的是这样的:sed的/(^([]*[^]\+[]\+[]\++[]\+)[^]\+[]\+[^]\+[\+[^]\+[]\+[]*$)/\2&/'$1>>tmp,但这件事给出了一个错误:sed:-e表达式1,char 62:s命令的RHS thx上的无效引用\2!很好,你在哪里找到的代码?这与你的问题毫无关系,甚至不密切。你懂一个字吗?
$ sed -nr '/^(\w+)\s+\1\s+(\w+\s*){3}$/p' file
if if a equals b
dany dany uri four 123