Setelah beberapa pemrosesan, saya memiliki file input saya seperti di bawah ini.
file1.txt
12345|john|student
43321|jack|professor
78965|alex|lecturer
Saya perlu memproses file di atas lebih lanjut dan jadi saya membutuhkan pemutus baris di akhir baris juga. Saat ini, saya dapat mencapainya seperti di bawah ini.
sed 's/$/|/' file1.txt
Perintah di atas menghasilkan output sebagai,
12345|john|student|
43321|jack|professor|
|
78965|alex|lecturer|
Seperti yang kita lihat, |
ditambahkan ke baris kosong juga. Ketika saya mencoba untuk menghapus |
karakter lagi dari baris kosong menggunakan perintah di bawah ini,
sed 's/|//g' file1.txt
|
karakter semakin dihapus di mana-mana. Bagaimana saya bisa menghapus hanya |
dalam baris kosong? Saya harus menjaga baris kosong juga.
Jawaban yang Diterima:
Dari aslinya, Anda dapat menambahkan |
ke baris yang tidak kosong:
Menggunakan sed
:
sed -e '/^$/!s/$/|/' file
Menggunakan perl
:
perl -lpe 's/$/|/ if length' file
Jika Anda ingin menghapus |
dari baris yang kosong (dalam versi kedua):
perl -lpe 's/|// if length == 1'