我有一个包含这些句子的文件
Today is a holiday
May I go tomorrow
No Holiday
我需要从中找到No Holiday
,并且需要将其与另一个字符串进行比较,例如grep "No Holiday"!="Holiday"
。
我不知道正确的查询。我只是给出我需要的逻辑。
答案1
选出文件的最后一行并将其与字符串进行比较Holiday
:
holiday_line=$( sed -n '$p' file.txt )
if [ "$holiday_line" = 'Holiday' ]; then
echo 'The holiday line says "Holiday"'
else
echo 'The holiday line does not say just "Holiday"'
fi
或者,如果您想要第三行,请更改sed -n '$p'
为sed -n '3p'
。$p
表示“打印最后一行”,而3p
表示“打印第三行”。
如果您想要找到第一个包含字符串 的行Holiday
,无论它位于文件中的哪个位置,请使用sed -n '/Holiday/{p;q;}'
.表达式的/Holiday/{p;q;}
意思是打印与模式匹配的行Holiday
,然后退出。
grep
按照评论中的要求使用:
if grep -q -wF 'No Holiday' file.txt; then
echo 'The file contains the string "No Holiday"'
else
echo '"No Holiday" was not found in the file'
fi
这类似于我对你上一个问题的答复。