Odpowiedzi:
sed -e "\$aTEXTTOEND" jest najprostszym sposobem.
$dopasowuje ostatni wiersz (jest to zwykły sedadres; 4aTEXTTOENDwstawiałby po czwartym wierszu), ajest poleceniem append i TEXTTOENDjest tym, co należy dołączyć.
sed -e '$a\NEWLINE\\'. Zastąp NEWLINE rzeczywistą nową linią.
sedW takim przypadku nie trzeba używać . Co powiesz na
echo "<?php" >> file
<php ” i „ >” oraz cytowanie wybranych treści za jednym razem, więc prawdopodobnie naprawdę chce sedfragmentu.
sudo, co powoduje, że ta odmiana kończy się niepowodzeniem, ponieważ echojest to wbudowane polecenie powłoki, a nie plik wykonywalny znaleziony w$PATH
echojest wbudowany, ale jest także plikiem wykonywalnym znalezionym w$PATH
Zakładając, że chcesz umieścić końcowy znacznik php w plikach
sed -i '$s/$/\n?>/' file
powinien załatwić sprawę
Zobacz swój oryginalny post dla polecenia all in one sed.
find . -type f -exec sed -i -e "1s/^/<?php /" -e "\$s/\$/ ?>/" {} \;
Użyj polecenia sed 'append (a)'. Na przykład, aby dodać dwa wiersze na końcu pliku:
sed -i -e '$a\
foo1 bar1\
foo2 bar2' file
W prosty sposób można pisać i wprowadzać zmiany w treści w określonym wierszu pliku. Jeśli chcesz wstawić cokolwiek pod określonym numerem linii, możesz użyć poniższego polecenia:
sed -i '2i i have started' sheikh.log
gdzie 2i- linia numer 2 i i oznacza wstawianie. Jeśli musisz wstawić w ostatnim wierszu, użyj $zamiast 2. zacząłem - tekst do wstawienia i sheikh.lognazwa pliku.
Możemy również wprowadzić zmiany w wierszu za pomocą poniższego polecenia
sed -i '2c we have started' sheikh.log
izmieniono na we.
{ cat file; echo 'END OF FILE'; } > newFile, działa to również dzięki sh. *. (nie sed, ale działa i prosty)