У меня есть простой сценарий оболочки, который я почти работаю по желанию.
Требования:
- Считать имена файлов в директории dir в массив
- переберите файлы и добавьте текст в конец соответствующей строки
Однако пока все достигнуто, я не могу заставить sed правильно добавить строку.
Например, вот мой сценарий:
#!/bin/bash
shopt -s nullglob
FILES=(/etc/openvpn/TorGuard.*)
TMPFILES=()
if [[ ${#FILES[@]} -ne 0 ]]; then
echo "####### Files Found #######"
for file in "${FILES[@]}"; do
echo "Modifying $file.."
line=$(grep -n "auth-user-pass" "$file" | cut -d: -f -1)
array=($(sed -e $line's/$/ creds.txt &/' "$file"))
tmp="${file/.conf/.ovpn}"
echo "$tmp created.."
TMPFILES+=("$tmp")
printf "%s\n" "${array[@]}" > ${tmp}
done
fi
Ожидаемый результат:
....
....
auth-user-pass creds.txt
...
...
Полученный вывод:
...
...
auth-user-pass
creds.txt
...
...