ファイルの指定された場所にスペースを挿入します。

ファイルの指定された場所にスペースを挿入します。

次のサンプルファイルがあります。

234234|111||J1X0H8|SERP||R|D|666|M
234235|222||J1X0N5|SERP||C||555|M

各行に対して、次のように、4番目の列の3番目の文字の後にスペースを挿入する必要があります。

234234|111||J1X 0H8|SERP||R|D|666|M
234235|222||J1X 0N5|SERP||C||555|M

sedとawksコマンドを試しましたが、肯定的な結果はありませんでした。どうすればいいですか?

ベストアンサー1

awkを使うと

awk -F '|' -v OFS='|' '{sub(/^.../, "& ", $4); print}' file

ただし、これは内部で編集できないため、次のことを行う必要があります。

t=$(mktemp)
awk -F '|' -v OFS='|' '{sub(/^.../, "& ", $4); print}' file > "$t" && mv "$t" file

sedを使用して、

sed -i 's/^[^|]*|[^|]*|[^|]*|.../& /' file

郵便番号を確認したい場合

sed -i 's/^\([^|]*|[^|]*|[^|]*|[[:alpha:]][[:digit:]][[:alpha:]]\)\([[:digit:]][[:alpha:]][[:digit:]]|\)/\1 \2/' file

おすすめ記事