0
Я пытаюсь отсканировать текст, но только некоторые аспекты каждой строки.Ошибка BASH при выполнении строковых манипуляций
Вот мой код:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo $line
destdir=/home/sample.txt
#echo $destdir
#want=${line:3:51}
if [ -f "$destdir" ]
then
echo "${line:3:51}" > "$destdir"
done < "$1"
Я хочу читать file.txt
и выводить только строки, начинающиеся на 3-й символ, оканчивающиеся на 54-й символ, и добавить в конец файла, sample.txt
. Я в настоящее время получаю эту ошибку:
line 11: syntax error near unexpected token `done'
line 11: `done < "$1"'
Любые предложения?
Так пропустить эти 4 строки в целом, и придерживаться этой одной линией? – user6230466
Пропустите весь цикл 'while' в пользу этой одной строки. – chepner
Если я избавлюсь от всего цикла, у меня есть только одна строка, с которой я в порядке. Однако sample.txt говорит мне, что он не может этого сделать - разрешение отклонено. У меня есть chmod + x, и все равно ничего – user6230466