我有两行如何在bash中运行“ack”并将输出保存到文件中?
keyword 1, 2010-10-01 | 1 | 2 | 3 | 4
keyword 2, 2010-10-01 | 1 | 2 | 3 | 4
以下test.txt文件,并想为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关键字1 test.txt',但我想'ack“关键字1”test.txt' – tenticon
@tenticon不,这是错误的。 – melpomene