>
mogę to zrobić.
echo "text" > file
tee
mogę to zrobić.
echo "test" | tee file
Czy sed
można to zrobić bez użycia jednego z powyższych? Czy to możliwe, aby zapisać dane wyjściowe sed
polecenia do pliku bez użycia albo >
albo tee
?
sed
io-redirection
Folatt
źródło
źródło
sed '' file > newfile
, to zobaczyłbyś, że>
tak naprawdę można go używaćsed
z każdym innym programem.>
operatora. Byłem zainteresowany, czy zamiast tego można użyć komendy sed. Ale usunę to pytanie, jeśli jest tak złe.sed -i
odpowiedź, zmienię twoje pytanie i wyjaśnię, czego szukasz.sed
nie jest przeznaczone do przekierowywania danych jakotee
i>
(mają) być”.Odpowiedzi:
tee i> mogą być używane do przekierowywania danych, ponieważ mają one służyć do przekierowywania danych w systemie Linux.
sed natomiast jest edytorem strumieniowym. sed nie jest przeznaczony do przekierowywania danych jako tee i> ma być. Aby to zrobić, możesz jednak użyć kombinacji poleceń.
użyj tee lub> z sed
lub
użyj sed z opcją -i
ostatni nie przekierowuje, zamiast tego wprowadzi zmiany w samym pliku.
źródło
sed
że sam może to zrobić, ponieważ jest również w stanie tworzyć pliki kopii zapasowej z-i.bak
opcją.echo "test" | dd of=file status=none
, tłumiąc wyjście echa bez użycia niejasnego przekierowania wyjścia2> /dev/null
, ale zamiast tego poprosiłem o ograniczenia sed. Byłem pod wielkim wrażeniem umiejętności seda, ponieważ jest w stanie dodawać wiersze w pliku, co daje mi wrażenie, że sed może zrobić wszystko, co może zrobić tee i więcej.sed
maw
polecenie, które może zrobić to, czego potrzebujesz:sed 'w file'
sam w sobie będzie miał taki sam efekt jaktee file
. Jeśli są inne polecenia sed, wstaww
ostatnie:Jednak
-n/--quiet/--silent
opcja ta nie wpłynie na to . To tylko tłumi zawartość, która w innym przypadku trafiłaby na standardowe wyjście.źródło
Jak ankidaemon poprawnie wskazał, w jaki sposób możemy zapisać dane wyjściowe sed do pliku. Chciałbym dodać, że jeśli wykonujemy pewne operacje na pliku, tj. Zamień i chciałbym zapisać dane wyjściowe w tym samym pliku. Istnieje
-i
flagased
umożliwiająca edycję w miejscu. Spowoduje to jednak utworzenie pliku kopii zapasowej. Jeśli nie jest to potrzebne, można to zrobić, przekazując pustą nazwę pliku do-i
flagi.źródło