この形式の複数のファイルを含むフォルダがあります>
1 Hello1 World1 Example1
2 Hello2 World2 Example2
...
区切り記号は次のとおりです。\t
各列の先頭/末尾のスペースがある場合は、それらをすべて削除したいと思います。
はい
1 Hello1\s World1 \sExample1
( \s
) < はスペースを表し、予想される出力は次のようになります。
1 Hello1 World1 Example1
値にスペースを含めることができるため、スペースを完全に削除したくありません(例:)Hel lo
。
また、新しいファイルを作成するのではなく、現在のファイルを編集したいと思います。
ベストアンサー1
GNU sedを使用すると、図のようにタブの周りのすべてのスペースを切り取ることができます。
$ sed -Ei -e 's/[ ]*\t[ ]*/\t/g' file
awkを使用してフィールドを繰り返し、フィールドを切り捨てます。
$ awk -F '\t' -v OFS='\t' '
{
for (i=1; i<=NF; ++i) {
gsub(/^[ ]+|[ ]+$/, "", $i)
}
}1
' file > foo && mv foo file