単語は、スペースや\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