フォルダ内のファイルを繰り返し、列の先頭/末尾のスペースを削除します。

フォルダ内のファイルを繰り返し、列の先頭/末尾のスペースを削除します。

この形式の複数のファイルを含むフォルダがあります>

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 

おすすめ記事