Mam dwa różne pliki:
Plik 1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
Plik 2
<TEXT1>
<TEXT2>
Chcę wymienić <TEXT1>
z pliku Plik2 z treścią File1 użyciu sed
. Próbowałem tego polecenia, ale nie otrzymałem właściwego wyniku:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Możesz również użyć innych narzędzi, aby rozwiązać ten problem.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
. Brak nowych linii.
diff
i patch
narzędzia pozwalają dość łatwo zastąpić niektóre linie w pliku innymi liniami.
$()
pomocą skryptu sed powoduje, że moje oczy krwawią. Nigdy nie używaj danych zewnętrznych w miejscach, w których niektóre znaki są interpretowane ze szczególnym znaczeniem.
sed
implementacji używasz. Twój kod działa dla mnie z GNUsed
.