特定のテキストファイルからすべての空白を削除したいと思います。これに使用できるシェルコマンドはありますか?または、sed
この目的での使用方法。
私は以下のようなものが欲しいです:
$ cat hello.txt | sed...。
私はこれを試しました:。cat hello.txt | sed 's/ //g'
しかし、それはタブではなくスペースだけを削除します。
回答:
$ man tr
NAME
tr - translate or delete characters
SYNOPSIS
tr [OPTION]... SET1 [SET2]
DESCRIPTION
Translate, squeeze, and/or delete characters from standard
input, writing to standard output.
改行を含むすべての空白を消去するには、次のことを試すことができます。
cat file.txt | tr -d " \t\n\r"
tr(htompkinsコメントへのクレジット)で定義された文字クラスを使用することもできます。
cat file.txt | tr -d "[:space:]"
たとえば、水平方向の空白だけを消去するには、次のようにします。
cat file.txt | tr -d "[:blank:]"
tr
ます。例:すべての空白cat file.txt | tr -d "[:space:]"
を削除するには:すべての水平方向の空白を削除するには:cat file.txt | tr -d "[:blank:]"
私の意見よりもはるかに簡単です:
sed -r 's/\s+//g' filename
別の行に変更するなどの情報を失わずに、sedを使用してスペースを一掃することができると思います。
cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'
tr -d " " < infile.txt > outfile.txt
^$
「行の始まり」(^)を探し、その直後に「行の終わり」($)を探しているため、空の行に一致します。
これはおそらくそれを行う最も簡単な方法です:
sed -r 's/\s+//g' filename > output
mv ouput filename
これを試して:
tr -d " \t" <filename
詳細については、tr(1)のマンページを参照してください。
おい、あなたのターミナルでただpythontest.py。
f = open('/home/hduser/Desktop/data.csv' , 'r')
x = f.read().split()
f.close()
y = ' '.join(x)
f = open('/home/hduser/Desktop/data.csv','w')
f.write(y)
f.close()
f.read().strip("\t\n\r ")
より効率的ではありませんか?
この回答は他の回答と似ていますが、出力がSTDOUTに送られると不満を言っている人もいるので、元のファイルにリダイレクトして上書きすることを提案します。私は通常これを提案することは決してありませんが、時には迅速で汚い作品です。
cat file.txt | tr -d " \t\n\r" > file.txt