Sedを使用してテキストファイル内のすべての空白スペースを削除する方法を知っていますか?私はそうするために「d」削除コマンドを使用しようとしましたが、それを理解することができないようです
「すべての空白スペースを削除する」とは、次のいずれかを意味します。
0x20
というコードのスペース文字をすべて削除します。\t
」を含むすべての水平スペースを削除します\n
」などを含むすべての空白を削除しますsed
が何らかの隠れた理由の要件ではない場合は、ジョブに適切なツールを使用することをお勧めします。
コマンドtr
は、文字のリストを他の文字のリストに変換するために主に使用されます(そのため、名前は "tr"です)。まれに、空の文字リストに変換できます。オプション-d
(--delete
)は、リストに表示される文字を削除します。
文字のリストは、[:...:]
構文の文字クラスを利用できます。
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
を主張する場合Sedでは、文字クラスの[:...:]
構文を正規表現の文字セットの構文[...]
と組み合わせる必要があり、やや混乱する[[:...:]]
になります。
sed 's/ //g' input.txt > no-spaces.txt
sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
sed 's/[[:space:]]//g' input.txt > no-spaces.txt
これを使用して、file
内のすべての空白を削除できます。
sed -i "s/ //g" file