Perintah untuk menambahkan baris ke file teks tanpa membuka editor

147

Dengan asumsi saya memiliki garis yang ingin saya tambahkan ke file tanpa membuka editor.

Bagaimana saya bisa menambahkan baris ini

alias list='ls -cl --group-directories-first'

ke file ini

config.fish
NES
sumber

Jawaban:

237

Anda dapat menambahkan baris teks ke file dengan menggunakan >>operator:

echo "hello world" >> my_file.txt

atau dalam kasus Anda

echo "alias list='ls -cl --group-directories-first'" >> config.fish

Harap perhatikan berbagai jenis kutipan .

Stefano Palazzo
sumber
25
Saya menggunakan echo sendiri, tetapi hati-hati, jika Anda hanya menentukan satu >maka file akan terpotong, bukan ditambahkan. untuk perintah yang lebih aman, Anda dapat menggunakan sed:sed -i '$a hello world' filename
invert
12
penjelasan: -iakan memperbarui file (jika tidak hanya akan mencetak hasilnya ke stdout), $adalah regex yang akan cocok dengan akhir file, dan amenambahkan teks berikut ke nama file.
Balikkan
echo "hello world" >> my_file.txttidak membuat baris terakhir baru dengan HW, tetapi menambahkannya ke string baris terakhir.
Timo
Apa itu HW@timo?
7wp
Mungkin "Hello World" @ 7wp :) Ini echoyang menambahkan jeda baris (menjadikannya garis yang bertentangan dengan hanya sekelompok karakter). Anda dapat mematikan jeda baris di akhir dengan -n.
Stefano Palazzo
3

Ada banyak metode menambahkan file tanpa membuka editor teks, terutama melalui beberapa utilitas pemrosesan teks yang tersedia di Ubuntu.

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
Sergiy Kolodyazhnyy
sumber
1

Menambahkan ke jawaban Stefano , Anda juga dapat menggunakan cat:

  • Menggunakan heredoc:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF
    

    <<'EOF'berarti "ambil yang berikut ini sebagai input, sampai Anda mencapai garis yang adil EOF". Kutipan berarti mengambil input secara harfiah.

  • Atau memasukkan baris pada stdin:

    $ cat >> config.fish

    Lalu rekatkan atau ketik baris, tekan Enteruntuk pergi ke baris baru, lalu tekan Ctrl + D untuk menandai akhir.

wjandrea
sumber