5番目のフィールドを持つファイルでのみ「_」を「|」に置き換えます。

5番目のフィールドを持つファイルでのみ「_」を「|」に置き換えます。

私のファイルには次の内容が含まれています。

rat|minty|ruhul|balaji|rat_123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat1_123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat2_123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat

5番目のフィールドでのみ_交換する必要があります。|

予想出力:

rat|minty|ruhul|balaji|rat|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat1|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat2|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat

ベストアンサー1

とともにawk、使用するgsub()5番裁判所:

$ awk 'BEGIN{FS=OFS="|"} {gsub("_",FS,$5)}1' file
rat|minty|ruhul|balaji|rat|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat1|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat
rat|minty|ruhul|balaji|rat2|123|decode|rat_123|abc|def|ghi|jkl|rat|cde|ind|rat

説明する

  • BEGIN{FS=OFS="|"}
    フィールド区切り記号をに設定します|。このようにして、私たちはそれを$55番目のフィールドとして扱うことができます。
  • {gsub("_",FS,$5)}
    _フィールド5のすべての項目をFS。つまり、|
  • 1
    awkのデフォルト動作をトリガーします。現在の(変更された)レコードを印刷します。

おすすめ記事