Ketika saya echo $something >> file.txt
, baris baru akan ditambahkan ke file.
Bagaimana jika saya ingin menambahkan tanpa baris baru?
bash
redirection
onemach
sumber
sumber
echo $something
, perilakunya tergantung padaIFS
variabel, dan Anda bisa berakhir dengan karakter yang hilang. Anda dapat mencoba yang berikut ini:var="hello world"; echo $var
(dua jarak antara halo dan dunia) atauvar="hello world"; IFS='l'; echo $var
atauvar="-e hello \\n world"; echo $var
. Untuk mengatasinya, letakkan tanda kutip ganda di sekitar variabel seperti ini:,echo "$var"
atau gunakanprintf
.Jawaban:
Itu untuk apa
echo -n
.sumber
cat
? (mis. ketika Anda memiliki filesomething.txt
daripada variabel$something
)printf
sangat fleksibel dan lebih portabel daripadaecho
. Seperti implementasi C / Perl / etc, jika Anda tidak mengakhiri string format dengan\n
maka tidak ada baris baru yang dicetak:sumber
Jika Anda menggunakan output perintah, Anda dapat menggunakan xargs dalam kombinasi dengan gema
sumber
tr
adalah alternatif lain.Jika Anda menggunakan
echo
input Anda, Anda bisa pergi yang manatr -d '\n'
.Teknik ini juga berfungsi ketika memipihkan output dari perintah lain (hanya dengan satu baris output). Selain itu, jika Anda tidak tahu apakah file memiliki ujung UNIX atau DOS yang dapat Anda gunakan
tr -d '\n\r'
.Berikut adalah beberapa tes yang menunjukkan bahwa ini berhasil.
Baris baru termasuk:
UNIX baris baru:
Gaya DOS:
Diuji dengan BSD
tr
dan GNUtr
.sumber