Odpowiedzi:
sed -e "\$aTEXTTOEND"
jest najprostszym sposobem.
$
dopasowuje ostatni wiersz (jest to zwykły sed
adres; 4aTEXTTOEND
wstawiałby po czwartym wierszu), a
jest poleceniem append i TEXTTOEND
jest tym, co należy dołączyć.
sed -e '$a\NEWLINE\\'
. Zastąp NEWLINE rzeczywistą nową linią.
sed
W 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 sed
fragmentu.
sudo
, co powoduje, że ta odmiana kończy się niepowodzeniem, ponieważ echo
jest to wbudowane polecenie powłoki, a nie plik wykonywalny znaleziony w$PATH
echo
jest 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.log
nazwa pliku.
Możemy również wprowadzić zmiany w wierszu za pomocą poniższego polecenia
sed -i '2c we have started' sheikh.log
i
zmieniono na we
.
{ cat file; echo 'END OF FILE'; } > newFile
, działa to również dzięki sh. *. (nie sed, ale działa i prosty)