У меня есть следующий файл test.txt с двумя линиямиКак я могу запустить «ack» в bash и сохранить вывод в файл?
keyword 1, 2010-10-01 | 1 | 2 | 3 | 4
keyword 2, 2010-10-01 | 1 | 2 | 3 | 4
и хотел бы ack для 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
, потому что просто запуск этой команды дает пустой результат.
Почему вы обратный косая черта внешних двойных кавычек? – choroba
Если я просто использую «ключевое слово« $ », он выполнит' ack keyword 1 test.txt', но я хочу «ack» ключевое слово 1 «test.txt» – tenticon
@tenticon Нет, это неправильно. – melpomene