次の文を含むファイルがあります。
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
または3行目が必要な場合は、sed -n '$p'
に変更してくださいsed -n '3p'
。$p
「最後の行の印刷」を意味し、3p
「3行目の印刷」を意味します。
文字列を含む最初の行を見つけるには、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
これは次のようになります。前の質問に対する私の答え。