У меня есть следующий файл test.txt с двумя строками
keyword 1, 2010-10-01 | 1 | 2 | 3 | 4
keyword 2, 2010-10-01 | 1 | 2 | 3 | 4
и хотел бы подтвердить для keyword1
и keyword2
. Я называю этот сценарий
#!/bin/bash
OUTPUTPATH=$1"/"
JOB=$2
ID="_"$3".csv"
for keyword in "${@:4}"
do
trKeyWord=$(echo "$keyword" | sed 's/ //g')
ack \""$keyword"\" $JOB > $OUTPUTPATH$trKeyWord$BSLD_ID
done
через
bash script.sh /home/username/ test.txt test "keyword 1" "keyword 2"
Выходные файлы keyword1_test.csv
, keyword2_test.csv
созданы, но пусты! Проблема должна заключаться в том, как я использую ack \""$keyword"\" $JOB
, потому что просто запуск этой команды дает пустой результат.
ack keyword 1 test.txt
, но я хочуack "keyword 1" test.txt
- person tenticon   schedule 09.01.2017OUTPUTPATH="$1"/; JOB="$2"; ID=_"$3".csv
. Но вы должны использовать имена переменных в нижнем регистре; Переменные ALL_UPPERCASE предназначены для системы. - person melpomene   schedule 09.01.2017${keyword/ }
, без внешней команды. - person choroba   schedule 09.01.2017trKeyWord="${keyword// }"
, чтобы удалить все пробелы. - person melpomene   schedule 09.01.2017