GNU/Linux >> Belajar Linux >  >> Linux

skrip bash menambahkan teks ke baris pertama file

sed ini perintah akan menambahkan 123 ke akhir baris pertama file Anda.

sed ' 1 s/.*/&123/' yourfile.txt

juga

sed '1 s/$/ 123/' yourfile.txt

Untuk menambahkan hasil ke file yang sama, Anda harus menggunakan -i beralih :

sed -i ' 1 s/.*/&123/' yourfile.txt

Ini adalah solusi untuk menambahkan "ok" di baris pertama pada /etc/passwd , saya pikir Anda dapat menggunakan ini dalam skrip Anda dengan sedikit 'penyetelan' :

$ awk 'NR==1{printf "%s %s\n", $0, "ok"}' /etc/passwd
root:x:0:0:root:/root:/bin/bash ok

Untuk mengedit file, Anda dapat menggunakan ed , editor standar:

line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
    ed -s "$file" < <(printf '%s\n' 1 a "$line" . 1,2j w q)
fi

ed perintah:

  • 1 :pergi ke baris 1
  • a :tambahkan (ini akan disisipkan setelah baris saat ini)
  • Kita sedang dalam mode penyisipan dan kita sedang menyisipkan perluasan $line
  • . :hentikan mode penyisipan
  • 1,2j gabungkan baris 1 dan 2
  • w :tulis
  • q :berhenti

Linux
  1. Bisakah Skrip Bash Dihubungkan ke File?

  2. Hapus lima karakter pertama pada baris mana pun dari file teks di Linux dengan sed

  3. Hapus spasi putih di setiap awal baris file, menggunakan bash

  1. Bagaimana cara menambahkan teks ke file?

  2. gema teks dengan baris baru di bash

  3. sed:bagaimana cara mengganti baris jika ditemukan atau ditambahkan ke akhir file jika tidak ditemukan?

  1. Bagaimana Cara Menyisipkan Teks Sebelum Baris Pertama Sebuah File?

  2. Bash Script:Periksa Apakah File Adalah File Teks?

  3. Hapus Beberapa Baris Pertama Secara Efisien Dari File Teks?