-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 に答える