GNU/Linux >> Linux の 問題 >  >> Linux

テキストファイルからすべての空白文字を削除する方法

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でテキストファイルの不要な空白文字を削除することは問題になりません。


Linux
  1. テキストファイルから最初の数行を効率的に削除しますか?

  2. Linuxコマンドを使用してプレーンテキストファイルから重複した単語を削除する方法

  3. アプリケーション ディレクトリからすべての .svn ディレクトリを削除する方法

  1. Linuxでテキストファイルからバイナリを見分ける方法

  2. テキスト ファイルから改行を削除するにはどうすればよいですか?

  3. テキスト ファイルから奇数行または偶数行を削除する

  1. テキストファイル内の重複行を削除するにはどうすればよいですか?

  2. テキストファイル(Bash_historyなど)から「バイナリデータ」を削除するにはどうすればよいですか?

  3. nano を使用してファイルからすべてのテキストを選択するにはどうすればよいですか?