我该怎么办" ack"在bash中将输出保存到文件中?

时间:2017-01-09 15:45:39

标签: bash grep ack

我有以下带有两行的test.txt文件

keyword 1, 2010-10-01 | 1 | 2 | 3 | 4
keyword 2, 2010-10-01 | 1 | 2 | 3 | 4

并希望keyword1keyword2 ack。我称这个脚本为

#!/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.csvkeyword2_test.csv但它们是空的!问题必须是我使用ack \""$keyword"\" $JOB的方式,因为只运行此命令会得到一个空结果。

1 个答案:

答案 0 :(得分:2)

好的,伙计们,这是最终的(工作)答案:

outputpath="$1"/
job="$2"
id=_"$3".csv
for keyword in "${@:4}"
do
  trKeyWord=${keyword// }
  ack "$keyword" $job > $outputpath$trKeyWord$id
done