テキストファイルの特定の単語を置き換えるには、sedスクリプトヘルプが必要です。

テキストファイルの特定の単語を置き換えるには、sedスクリプトヘルプが必要です。

sed私はルーマニア語のテキストや他の適切なUnixツールを使って特定のテキスト置換操作を自動化したいと思います。これは私の要件です。

  1. 文字のすべてのインスタンスを内部単語âに置き換えます。î
  2. 語根が「român」の単語(「Românească」、「româneşte」など)は、変更されていないままにしてください。
  3. 「sunt」という単語は「sînt」に置き換える必要があります。

たとえば、

入力する:

până
împământenit
român
Românească
sunt
cugetând

予想出力:

pînă
împămîntenit
român
Românească
sînt
cugetînd

複数のスクリプトを試しましたが、sedどちらも同時にすべての要件を満たしていませんでした。誰でも私を案内できますか?どんな助けやアドバイスにも感謝します!

ベストアンサー1

説明したように、

sed '/[rR]omân/!s/â/î/g;s/sunt/sînt/g'

次の作業が完了します。

  • s/â/î/gubstitureがsすべて(g部分的に)表示されるâかどうかî
  • 「アドレス」/[rR]omân/が逆!のため、このパターンを含む行では、次のコマンドは機能しません。
  • s/sunt/sînt/g結局、成分の一部として単語を置き換えました。

注:あなたの例ではă交換されます。これが必要な場合

sed '/[rR]omân/!s/[âă]/î/g;s/sunt/sînt/g'

おすすめ記事