ファイルがあります:
a|b|c|d
x|y|z|n|||||||||
p|q|r|s|
g|h|i|
w|e|r||
2行目に追加の区切り文字があるので、それを削除したいと思います。 Unixではどうすればいいですか?
出力には4つのパイプ区切り文字のみを含める必要があります。
a|b|c|d
x|y|z|n
p|q|r|s
g|h|i|
w|e|r|
ベストアンサー1
この場合、awkは読みやすいと思います。
$ awk -F'|' -vOFS='|' '{NF=4}1' file
a|b|c|d
x|y|z|n
p|q|r|s
g|h|i|
w|e|r|
この答えは、末尾のパイプ記号を削除せずに出力の列を4に設定します。次の修正例の場合:
$ cat file
a|b
x|y|z|n||||
p|q|r|s
g|h|i|
w|e|r||
$ awk -F'|' -vOFS='|' '{NF=4}1' file
a|b||
x|y|z|n
p|q|r|s
g|h|i|
w|e|r|