我有以下输入:
/ > blablabla
title 1
-------
title 2
-------
...
-------
title n
/ >
现在我只需要读取包含标题的行,所以我必须删除------和/>。 我设法将所有-----排除在外:
if [ "$LINE" != "-------" ]
但问题是删除两行:
/ >blablabla
/ >
(blablabla可能会改变)。我想排除所有以:“/>”开头的字符串: 但我试过几次没有成功。
使用:
if [[ $LINE!=/* ]]
我没有成功。 获得该结果的正确方法是什么?
提前致谢。
答案 0 :(得分:4)
要仅迭代标题,您可以尝试以下操作:
grep -vE '^(/ >|---)' your_file.txt |while read line; do
# process the titles
echo $line
done
这将排除您不关心的两种类型的行。
答案 1 :(得分:1)
while read line; do
case $line in
'/ >'*|---*)
continue;;
esac
echo "$line"
done << \EOF
/ >blablabla
title 1
-------
title 2
-------
...
-------
title n
/ >
EOF
答案 2 :(得分:1)
pattern='^/ > |^-------'
while read -r line
do
if [[ ! $line =~ $pattern ]]
then
printf '%s\n' "$line"
fi
done < inputfile