簡體   English   中英

linux腳本查找文件名中的特定單詞

[英]linux script to find specific words in file names

我需要編寫腳本來完成下面a部分所述的操作。

以下代碼將輸出在$ filename中找到的所有單詞,每個單詞在單獨的行中。

for word in “cat $filename”
do
    echo $word
done 

一種。 編寫一個接收兩個參數的新腳本。 第一個是文件名($ 1代替$ filename),第二個是您要搜索的單詞($ 2)。 在for循環內,而不是echo $ word,請使用if語句將$ 2與$ word進行比較。 如果它們相等,則將一個加到一個稱為COUNT的變量中。 在for循環之前,將COUNT初始化為0,在for循環之后,輸出一條消息,告訴用戶$ 2在$ 1中出現了多少次。 也就是說,在echo語句中輸出$ COUNT,$ 2和$ 1,但請確保此處包含一些文字,這樣輸出對用戶才有意義。 提示:要比較兩個字符串,請使用符號[$ string1 == $ string2]。 要將X加到變量中,請使用符號X = $((X + 1))。 如果每條指令都在單獨的行上,則不需要任何分號。 使用默認值一詞在/ etc / fstab上測試您的腳本(應該發現7次)

這是我到目前為止所得到的,但是它不能正常工作。 它說在/ etc / fstab中找到0個單詞“ defaults”。 我確定我的代碼是錯誤的,但無法找出問題所在。 感謝幫助。

count=0
echo “what word do you want to search for?: “
read two
for word in “cat $1”
do
    if [ “$two” == “$word” ]; then
        count=$((count+1))
    fi
done
echo $two appeared $count times in $1

您需要使用命令替換,您正在遍歷以下字符串: cat first_parameter

for word in $(cat "$1")

更好的方法是使用grep解釋, 如何用命令行計算單詞在文本文件中出現的次數?

grep -o "\<$two\>" "$1" | wc -l

暫無
暫無

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

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