Katakanlah saya memiliki file teks seperti ini:
# custom content section
a
b
### BEGIN GENERATED CONTENT
c
d
### END GENERATED CONTENT
Saya ingin mengganti bagian antara GENERATED CONTENT
tag dengan konten file lain.
Apa cara paling sederhana untuk melakukan ini?
bash
unix
shell-script
textfiles
text-processors
smokris
sumber
sumber
sed
dapat melakukan lebih dari sekadars/.../...
!r insert_file
perintah harus menjadi hal terakhir pada baris. Perhatikan bahwa spasi putih atau komentar tidak diizinkan setelahnya. Kode diuji menggunakan GNUsed
dengan--posix
opsi yang diaktifkan, dan itu berfungsi seperti yang diharapkan, jadi itu harus bekerja dengan setiap posix compliantsed
.output=$(sed -e "..." existing_file)
) dan kemudian melakukan penggantian dalam pass kedua (mis.echo "$output" > existing_file
) Karena mencoba mengalihkan ke file yang Anda baca akan menyebabkannya terpotong sebelum konten dibaca.sumber
Peringatan: Ini jelas bukan cara paling sederhana untuk melakukannya. (EDIT: bash berfungsi; POSIX grep juga baik-baik saja)
Jika teks utama di file "main" dan konten yang dihasilkan di file "gen", Anda bisa melakukan hal berikut:
sumber
main
untuk menulis, membersihkannya, sebelum dibaca oleh kucing.sumber
r FILE2
Anda bisa mengatakanr !command
untuk membaca dari skrip yang berbeda.