Я пытаюсь написать bash script, который будет делать следующее:
- считывает содержимое из первого файла (в качестве первого аргумента)
- читает содержимое из второго файла (в качестве второго аргумента)
- находит строку во втором файле с заданным шаблоном (в качестве третьего аргумента)
- вставляет текст из первого файла во второй файл после строки шаблона.
- выводит окончательный файл на экран.
Например:
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