名前の「重要でない」部分を置き換える必要があります。これはbashスクリプトで行う必要があります。これを行うには、 "VAN"、 "DEN"、 "DE"、 "DER"という中間語を削除する必要があります。
これを行うには、私は(問題が2行に減少)を交換ビルトインを使用しています:
line="STIG VAN DE WYNKELE";
line=${line//@(' VAN '|' DEN '|' DE '|' DER ')/' '};
echo $line;
出力:
STIG DE WYNKELE
予想される出力:
STIG WYNKELE
を
@(...)は中間の単語の1つにマッチしていて、この1つの中間語のすべての出現を取り除いているようですが、それ以外は一致しませんrs。
質問:私の構文が間違っていますか?そうでない場合は、どうすればその言葉を削除できますか? sedはファイルを必要とし、入力は変数であり、変更されたテキストも変数に格納する必要があります。 ($行を変更する必要があります)
は 'sed'ファイルを必要としない、それはストリームエディタです。 'foo = $(echo" $ foo "| sed ...)'は一般的なイディオムです。 –
一般的ですが、 '$ foo'が短い場合は通常不要です。 – chepner