このスクリプトでは、このsedコマンドはどのような役割を果たしますか?

このスクリプトでは、このsedコマンドはどのような役割を果たしますか?

私はシェルスクリプトに初めてアクセスし、sedこのコマンドの機能を理解していません。説明をお手伝いできますか?

cat $fRostroTmp | sed "s/ *|/;/g" >> $fRostroCsv
rm -f $fRostroTmp

答え1

sedあなたの意見で表現について具体的に質問しましたs/ *|/;/g

これは、正規表現に一致するすべての項目を単一文字に置き換える代替コマンド(s)です。*|;

この式は、*|0個以上のスペースの後に|1文字が続くものと一致します。したがって、入力でこれが発生するたびに;

g式の終わりには、sed最初の一致だけでなく、各行の重複しないすべての一致にも置換が適用されます。これは次の行を意味します。

1 2 3 | 3 4 5 | 5 6 6

または

1 2 3| 3 4 5     | 5 6 6

に変換されます

1 2 3; 3 4 5; 5 6 6

関連情報