簡體   English   中英

貓的無效選項3

[英]Invalid option 3 for cat

當我嘗試運行以下腳本時,它說cat。的選項3無效。是什么問題? 我試圖使用索引文件來指定哪個文件是火腿,哪個是垃圾郵件...以讀取文件並訓練spamfilter

#!bin/bash
DirBogoDict=$1
BogoFilter=/home/gunna/Downloads/bogofilter-1.2.4/src/bogofilter
x=0
for i in 'cat index | fgrep spam | head -300 | awk -F "/" '{print$2"/"$3}''

do
     x=$((x+1)) ; echo $x


cat  /home/gunna/Downloads/db-6.1.19.NC/build_unix/ceas08-1/$i| $BogoFilter -d $DirBogoDict -M -k 1024 -s

done

for i in 'cat index | fgrep ham | head -300 | awk -F "/" '{print$2"/"$3}''


do
     x=$((x+1)) ; echo $x


cat   /home/gunna/Downloads/db-6.1.19.NC/build_unix/ceas08-1/$i | $BogoFilter -d $DirBogoDict -M -k 1024 -n

done

這部分

 'cat index | fgrep spam | head -300 | awk -F "/" '{print$2"/"$3}''

需要使用反引號,而不是單引號

`cat index | fgrep spam | head -300 | awk -F "/" '{print$2"/"$3}'`

您可能會用

for i in `fgrep spam index | head -300 | awk "/" '{print$2"/"$3}'`

Kdopen解釋了您遇到的錯誤,這是類似的for循環函數的改進代碼。

DirBogoDict=$1
BogoFilter=/home/gunna/Downloads/bogofilter-1.2.4/src/bogofilter

awk '/spam/&&++myctr<=300{print $2 FS $3}' FS="/" index |while read i
do
    cat  /home/gunna/Downloads/db-6.1.19.NC/build_unix/ceas08-1/"$i"| $BogoFilter -d ${DirBogoDict} -M -k 1024 -s
done

awk '/ham/&&++myctr<=300{print $2 FS $3}' FS="/" index |while read i
do
    cat  /home/gunna/Downloads/db-6.1.19.NC/build_unix/ceas08-1/"$i"| $BogoFilter -d ${DirBogoDict} -M -k 1024 -s
done

另外,請查看您的文件名,因為cat給出了錯誤,並且選項無效。 為了說明這一點,假設您有一個名為-3error的文件

執行以下命令

cat -3error

將給

cat: invalid option -- '3'

因此,cat認為“-”后面是其命令行參數之一。 結果,您可能會收到無效的選項錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM