高度にカスタマイズされた形式を使用する CSV ファイルがあります。ここで、各数値は 4 つの列のそれぞれのデータを表します。
1 2 [3] 4
sed
4 番目の列に表示されるデータのみを検索および変更するように制限する必要があります。基本的に、閉じ角括弧とスペースが最初に出現する前の行のすべてのデータを無視し、]
その後に出現するデータのみを変更する必要があります。たとえば、次の内容file1.txt
が含まれる場合があります。
penguin bird [lives in Antarctica] The penguin lives in cold places.
wolf dog [lives in Antarctica with penguins] The wolf likes to eat penguins.
交換品はsed 's/penguin/animal/g' file1.txt
. スクリプトを実行すると、出力は次のようになります。
penguin bird [lives in Antarctica] The animal lives in cold places.
wolf dog [lives in Antarctica with penguins] The wolf likes to eat animal.
この場合、penguin
最初の行より前のすべての出現は無視され、]
後に出現する行でのみ変更されました。
- 行の後半に追加の閉じ括弧が表示される場合がありますが、最初のものだけが分割と見なされます。
sed
テキストを検索して置換する際に、このカスタム CSV 形式の最初の 3 列を無視するにはどうすればよいですか?
GNU sed バージョン 4.2.1 を使用しています。