![在 shell 脚本中使用 grep 来搜索精确的字符串](https://linux22.com/image/92748/%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%BD%BF%E7%94%A8%20grep%20%E6%9D%A5%E6%90%9C%E7%B4%A2%E7%B2%BE%E7%A1%AE%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我有一个shell script
在运行脚本的该部分之前检查名称是否已添加到文本文件中的函数。如果它确实找到该名称,它将跳过脚本的这一部分。
以下是冲突的示例:
荷属安的列斯群岛
if ! grep "netherlands-antilles" uploaded.txt; then
// Do some work here
echo netherlands-antilles >> uploaded.txt
fi
荷兰
if ! grep "netherlands" uploaded.txt; then
// Do some work here
echo netherlands >> uploaded.txt
fi
因为Netherlands Antillies
已经在文本文件中,所以它不会运行脚本的“荷兰”部分,而我确实需要它。
有没有办法不只grep
搜索字符串的一部分?我不想搜索netherlands
匹配的netherlands-antilles
.
答案1
如果这些条目是该文件行中的唯一内容,您可以使用正则表达式来包含行的开头和行的 enf:
if ! grep "^netherlands$" uploaded.txt; then
// Do some work here
echo netherlands >> uploaded.txt
fi