特定の列の区切り文字を置き換える方法

特定の列の区切り文字を置き換える方法

これはabc.txtファイルは5つの列で構成されています。

ID|first name|middle name|last name|address 
1 | john     | whatever  | smith   | somewhere

この出力を取得するにはどうすればよいですか?

ID|first name middle name last name|address
1 | john whatever smith            |somewhere

'|'特定の列の空白のみを新しいファイルに置き換える方法定義.txt。この場合、2列から4列までです。

ベストアンサー1

アッ解決策:

awk 'BEGIN{ FS=OFS="|" }{ cs=$2$3$4; gsub(/ +/, " ", cs); print $1,sprintf("%-32s",cs),$5 }' abc.txt
  • FS=OFS="|"- フィールド区切り記号

  • cs=$2$3$4- 2番目、3番目、4番目のフィールドを接続します。

  • gsub(/ +/, " ", cs)- 不要なスペースを削除

  • sprintf("%32s",cs)- フォーマットされた接続文字列


出力:

ID|first namemiddle namelast name  |address 
1 | john whatever smith            | somewhere

おすすめ記事