追加の区切り文字がある場合は、最後の区切り文字を削除します。

追加の区切り文字がある場合は、最後の区切り文字を削除します。

ファイルがあります:

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|

おすすめ記事