Existuje nějaký způsob, jak spustit zkušební rekurzivní vyhledávání a nahradit pomocí sed
, než to skutečně spustíte? Chci jen vytisknout výsledky, než skutečně vyhledám a nahradím. Něco jako opakování výsledků,
grep -rl term1 . |xargs sed -i -e 's/term1/term2/'
Přijatá odpověď:
Můžete spustit sed
bez -i
a procházejte výstup pomocí less
grep -rl --null term1 . | xargs -0 sed -e 's/term1/term2/' | less
Poté spusťte sed
pomocí -i.bak
vytvořit zálohy, které můžete následně porovnat
grep -rl --null term1 . | xargs -0 sed -i.bak -e 's/term1/term2/'
diff somefile.bak somefile
# verify changes were correct
Upravit: Jak je navrženo v komentáři, použijte grep --null | xargs -0
. To způsobí, že názvy souborů budou ukončeny null-byte, což je bezpečné pro názvy souborů s neobvyklými znaky, jako je nový řádek. Ano, n
je platný znak v unixovém souboru. Jediné zakázané znaky jsou lomítko /
a znak nul