如何在 bash 中运行"ack"并将输出保存到文件中?



我有以下测试.txt文件有两行

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

并想为keyword1keyword2.我称此脚本

#!/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因为仅运行此命令就会给出空结果。

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

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

最新更新