Yanıtlar:
sed -e "\$aTEXTTOEND"
en basit yoldur.
$
Son satırla eşleşir (normal bir sed
adres; 4aTEXTTOEND
dördüncü satırdan sonra a
eklenir ), append komutudur ve TEXTTOEND
ne eklenir.
sed -e '$a\NEWLINE\\'
. NEWLINE'ı gerçek bir yeni satırla değiştirin.
sed
Bu durumda kullanmaya gerek yok . Peki ya
echo "<?php" >> file
<php
" ve " >
" ile desteklediğini ve seçilen içerikleri tek seferde aktardığını tahmin edebilirsiniz , bu yüzden muhtemelen gerçekten bir sed
parça istiyor .
sudo
bu değişikliğin başarısız olmasına neden olur çünkü bu echo
durum,$PATH
echo
yerleşik bir yazılımdır , aynı zamanda içinde bulunan yürütülebilir bir dosyadır$PATH
Sona çıkan php etiketini dosyalara koymak istediğinizi varsayalım.
sed -i '$s/$/\n?>/' file
hile yapmalı
Hepsi bir arada komut için orijinal gönderinize bakın.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Sed 'append (a)' komutunu kullanın. Örneğin, dosyanın sonuna iki satır eklemek için:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
İçerikteki değişiklikleri bir dosyada belirli bir satırda yazmak ve yapmak basit bir şekilde. Belirli bir satır numarasına herhangi bir şey eklemek istiyorsanız, aşağıdaki komut kullanılabilir:
sed -i '2i i have started' sheikh.log
nerede 2i
- 2 numaralı satır ve ben eklemek için duruyor. Son satıra eklemek zorundaysanız $
, 2 yerine kullanın . Başladım - eklenecek metin ve sheikh.log
dosya adı.
Aşağıdaki komutu kullanarak satırdaki değişiklikleri de yapabiliriz.
sed -i '2c we have started' sheikh.log
i
olarak değiştirildi we
.
Bir dosyanın başına / sonuna nasıl metin ekleyeceğinizi / ekleyeceğinizi araştıran birinin muhtemelen diğerinin de nasıl yapılacağını bilmesi gerektiğini varsayardım.
cal | \
gsed -E \
-e '1i\{' \
-e '1i\ "lines": [' \
-e 's/(.*)/ "\1",/' \
-e '$s/,$//' \
-e '$a\ ]' \
-e '$a\}'
Bu cal
çıkış , genişletilmiş RegEx ( ) ve 6 "betik" uygulanmış ( ) ve guan- sed
( brew.sh gsed
aracılığıyla yüklenen macOS'ta ) ve okunabilirlik için kaçan satır sonları ile birlikte çıkış borularıdır . Script 1 ve 2 , "1. satırda, ekle" yi kullanır. Script 5 ve 6 , "<last> satırında, sonda" satırını kullanır . Kodun sonuçta beklenenleri temsil etmesi için metin çıktılarını dikey olarak hizaladım. Script 3 ve 4, ikame yapar (ikincisi sadece "<last>" satırı için geçerlidir). Sonuç, komut çıkışını geçerli JSON'a dönüştürmektir.-E
-e
\
1i\
$a\
{
"lines": [
" October 2019 ",
"Su Mo Tu We Th Fr Sa ",
" 1 2 3 4 5 ",
" 6 7 8 9 10 11 12 ",
"13 14 15 16 17 18 19 ",
"20 21 22 23 24 25 26 ",
"27 28 29 30 31 ",
" "
]
}
{ cat file; echo 'END OF FILE'; } > newFile
, bu sh sayesinde de çalışır *. (sed değil ama çalışır ve basit)