在 shell 脚本中使用 grep 来搜索精确的字符串

在 shell 脚本中使用 grep 来搜索精确的字符串

我有一个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

相关内容