У мене є два різних файли:
Файл1
/home/user1/
/home/user2/bin
/home/user1/a/b/c
Файл2
<TEXT1>
<TEXT2>
Я хочу , щоб замінити <TEXT1>
з файл2 з вмістом File1 використання sed
. Я спробував цю команду, але не отримав належного результату:
cat File2|sed "s/<TEXT1>/$(cat File1|sed 's/\//\\\//g'|sed 's/$/\\n/g'|tr -d "\n")/g"
Ви можете використовувати й інші інструменти для вирішення цієї проблеми.
/home/user1/ n/home/user2/bin n/home/user1/a/b/cn <TEXT2>
. Не отримує нових рядків.
diff
та patch
інструменти дозволяють досить легко замінити деякі рядки у файлі іншими рядками.
$()
за сценарієм sed, змушує мої очі кровоточити. Ніколи не використовуйте зовнішні дані в місцях, де деякі символи інтерпретуються з особливим значенням.
sed
функцію ви використовуєте. Ваш код працює для мене з GNUsed
.