[英]Print only lines different from several strings of a bash script
我有以下輸入:
/ > blablabla
title 1
-------
title 2
-------
...
-------
title n
/ >
現在,我只需要閱讀包含標題的行,因此必須刪除------和/>。 我設法將所有-----排除在外:
if [ "$LINE" != "-------" ]
但是問題是刪除兩行:
/ >blablabla
/ >
(blablabla可能會發生變化)。 我想排除所有以“ />”開頭的字符串,但是我嘗試了幾種方法但均未成功。
帶有:
if [[ $LINE!=/* ]]
我沒有成功。 獲得該結果的正確方法是什么?
提前致謝。
要僅遍歷標題,可以嘗試以下操作:
grep -vE '^(/ >|---)' your_file.txt |while read line; do
# process the titles
echo $line
done
這將排除您不關心的兩種類型的行。
while read line; do
case $line in
'/ >'*|---*)
continue;;
esac
echo "$line"
done << \EOF
/ >blablabla
title 1
-------
title 2
-------
...
-------
title n
/ >
EOF
pattern='^/ > |^-------'
while read -r line
do
if [[ ! $line =~ $pattern ]]
then
printf '%s\n' "$line"
fi
done < inputfile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.