Adakah yang tahu cara menggunakan Sed untuk menghapus semua spasi kosong di file teks? Saya belum pernah mencoba menggunakan perintah hapus "d" untuk melakukannya, tetapi sepertinya tidak bisa mengetahuinya
28
Untuk "menghapus semua ruang kosong" dapat berarti salah satu dari hal yang berbeda:
0x20
.\t
"\n
" dan lainnyaJika sed
bukan keharusan karena alasan tersembunyi, lebih baik gunakan alat yang tepat untuk pekerjaan itu.
Perintah tr
memiliki kegunaan utama dalam menerjemahkan (karena itu nama "tr") daftar karakter ke daftar karakter lain. Sebagai kasing, dapat diterjemahkan ke daftar karakter kosong; Opsi -d
( --delete
) akan menghapus karakter yang muncul dalam daftar.
Daftar karakter dapat menggunakan kelas karakter dalam [:...:]
sintaksis.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
Dengan sed, [:...:]
sintaks untuk kelas karakter perlu digabungkan dengan sintaks untuk set karakter di regexps [...]
, sehingga menghasilkan yang agak membingungkan [[:...:]]
:
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
tr -d ' ' < input.txt > no-spaces.txt
.tr
sekarang. (Apakah Anda melihatnya di tempat lain?)Anda dapat menggunakan ini untuk menghapus semua spasi putih di
file
:sumber
man sed | sed "s/ //g"
/
dengan karakter yang berbeda, misalnya:sed "ss ssg"