Linuxオペレーティングシステムディストリビューションの下で作業することで、コンピューティングの世界がどれほど変化する可能性があるかについて、非常にユニークな視点が得られます。たとえば、Linuxをプライマリオペレーティングシステムとして使用していない限り、テキストファイルの空白文字を取り除くのは面倒な作業のように聞こえるかもしれません。
空白は、この記事の単語や他の印刷可能な文字の間隔のように水平方向だけではありません。空白は、行や段落の垂直方向の間隔としても存在します。では、なぜ空白を削除するのでしょうか。主な理由は、対象のテキストファイルの見通しを無害化することです。
参照テキストファイル
次のサンプルテキストファイルを検討してください。
$ sudo nano sample_file.txt
上記のスクリーンキャプチャのように、テキストファイルが垂直方向と水平方向の両方の空白文字の症状を示していることは明らかです。 catコマンドと-n
を使用できます このファイルを番号付きビューで開くオプション。
$ cat -n sample_file.txt
テキストファイルに表示される明らかな空白文字には、スペース、タブ、および改行が含まれます。これらの空白文字をすべて削除するために、3つの組み込みLinuxコマンドの支援と使用を検討します。
方法1:trコマンドを使用する
trコマンド 上記のテキストファイルを入力として受け取り、テキストファイルの内容を変換し、空白文字を削除してから、非空白文字の出力をファイルに書き戻します。
ただし、trコマンドを提供する必要があります 特定の実行要件、つまり、水平方向の空白文字、垂直方向の空白文字、またはその両方を削除するかどうか。
ファイル内の水平方向の空白文字を削除する
"[:blank:]"
を使用します コマンドの一部として文字オプションを選択し、後でcatコマンドを実行します ファイルの最終的なレイアウトを印刷します。
$ tr -d "[:blank:]" < sample_file.txt | cat -n
上記の出力に従って、Linuxのテキストファイルから水平方向の空白文字を削除することに成功しました。
ファイル内のすべての空白文字を削除
"[:space:]"
オプションは、テキストファイルから水平方向と垂直方向の両方の空白文字を削除するために使用されます。
$ tr -d "[:space:]" < raw_file.txt | cat -n
方法2:sedコマンドを使用する
sedコマンドは正規表現で実装されるのが一般的であるため、次のように使用できます。
$ sed 's/[[:blank:]]//g' sample_file.txt | cat -n [Remove Horizontal Spaces] $ sed ':a; N; s/[[:space:]]//g; ta' sample_file.txt | cat -n [Remove All Spaces]
方法2:awkコマンドを使用する
この強力なテキスト処理ユーティリティは、Cのようなスクリプトやその他の組み込み関数や変数を利用して、テキスト処理を柔軟に操作します。
そのgsub関数を利用します 次の方法で、水平方向の空白文字を削除します。
$ awk '{gsub(/[[:blank:]]/,""); print}' sample_file.txt | cat -n
テキストファイルからすべての空白文字を削除するには、上記のコマンドに次の変更を加えます。
$ awk -v ORS="" '{gsub(/[[:space:]]/,""); print}' sample_file.txt | cat -n
上記の3つのLinuxコマンドアプローチを使用すると、Linuxでテキストファイルの不要な空白文字を削除することは問題になりません。