我有兩行如何在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