Sederhanakan saja :)
grep + gema harus cukup:
grep -qxF 'include "/configs/projectname.conf"' foo.bar || echo 'include "/configs/projectname.conf"' >> foo.bar
-q
diamlah-x
cocok dengan seluruh baris-F
pola adalah string biasa- https://linux.die.net/man/1/grep
Edit:masukkan saran @cerin dan @thijs-wouters .
Coba ini:
grep -q '^option' file && sed -i 's/^option.*/option=value/' file || echo 'option=value' >> file
Ini akan menjadi solusi yang bersih, mudah dibaca, dan dapat digunakan kembali menggunakan grep
dan echo
untuk menambahkan baris ke file hanya jika belum ada:
LINE='include "/configs/projectname.conf"'
FILE='lighttpd.conf'
grep -qF -- "$LINE" "$FILE" || echo "$LINE" >> "$FILE"
Jika Anda perlu mencocokkan seluruh baris, gunakan grep -xqF
Tambahkan -s
untuk mengabaikan kesalahan saat file tidak ada, buat file baru hanya dengan baris itu.