Я пытаюсь написать Баш скрипт, который будет делать следующее:Bash: Вставка содержимого одного файла в другой файл по образцу
- считывает содержимое из первого файла (в качестве первого аргумента)
- считывает содержимое из второго файла (в качестве второго аргумента)
- находит линию во втором файле с заданным шаблоном (в качестве третьего аргумента)
- вставляет текст из первого файла ко второму файлу после линии рисунка.
- печатает окончательный файл на экране.
Например:
first_file.txt:
111111
1111
11
1
second_file.txt:
122221
2222
22
2
картина:
2222
выход:
122221
111111
1111
11
1
2222
111111
1111
11
1
22
2
Что я должен использовать для реализации этой функции в BASH?
Я написал код, но он не работает должным образом (почему?):
#!/bin/bash
first_filename="$1"
second_filename="$2"
pattern="$3"
while read -r line
do
if [[ $line=˜$pattern ]]; then
while read -r line2
do
echo $line2
done < $second_filename
fi
echo $line
done < $first_filename
Для 4-го пункта 'sed -i 'line, text ...'' может сделать это – fedorqui
не могли бы вы дать небольшой пример? (ввод и ожидаемый выход) – michas
Что происходит в вашем текущем коде? «Не работает» не очень хорошее описание ошибки –