[英]Using grep inside a script
我正在嘗試使用 grep 搜索文件以查找單詞。 我試圖在腳本中使用它,但我無法讓它工作。 我是這方面的初學者,所以我的代碼可能不好。 這是我到目前為止所擁有的
#!/bin/bash
echo "apple", "book", "cat" >> file.txt
read -r filename
filename='file.txt'
"$4"=filename
"$1"=grep
"$2"=-R
所以理想情況下,我希望用戶能夠在命令行上鍵入腳本的名稱以及他們正在搜索的單詞,在本例中為“book”。
user:~/dir$ ./wordfind.sh book
我可能完全錯誤地這樣做,但是當我在命令行中運行上述命令時,它會凍結,我必須按 Ctrl-Z 才能擺脫它。 謝謝。
問題不夠清楚。
此答案假定您希望使用字符串或正則表達式作為第一個參數來調用腳本,即如果搜索詞包含空格或特殊字符,則必須引用它。
您可以將腳本wordfind.sh
更改為
#!/bin/bash
# note: I changed >> to > here to avoid duplicating the data on repeated calls
echo "apple", "book", "cat" > file.txt
echo "dad", "food", "girl" >> file.txt
echo "god", "hey", "linux" >> file.txt
echo "out", "owl", "rice" >> file.txt
echo "say", "toy", "zebra" >> file.txt
# Check if exactly one argument was specified.
if [ $# -ne 1 ]
then
echo "usage: $0 'regex'"
exit 1
fi
grep "$1" file.txt
例子:
$ ./wordfind.sh rice
out, owl, rice
$ ./wordfind.sh 'z.*a'
say, toy, zebra
$ ./wordfind.sh 'd, f'
dad, food, girl
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.