0

我有以下输入:

/ > blablabla
title 1 
-------
title 2
-------
...
-------
title n
/ > 

现在我只需要阅读包含标题的行,所以我必须删除 ------ 和 / >。我设法排除了所有-----:

if [ "$LINE" != "-------" ] 

但问题是删除这两行:

/ >blablabla
/ >

(blablabla 可能会改变)。我想排除所有以“/ >”开头的字符串但是我尝试了几种方法都没有成功。

和:

if [[ $LINE!=/* ]]

我没有成功。获得该结果的正确方法是什么?

提前致谢。

4

3 回答 3

4

要仅迭代标题,您可以尝试以下操作:

grep -vE '^(/ >|---)' your_file.txt |while read line; do 
  # process the titles
  echo $line
done

这将排除您不关心的两种类型的行。

于 2012-05-20T22:08:51.057 回答
1
pattern='^/ > |^-------'
while read -r line
do
    if [[ ! $line =~ $pattern ]]
    then
        printf '%s\n' "$line"
    fi
done < inputfile
于 2012-05-21T01:32:06.080 回答
1
while read line; do
  case $line in
    '/ >'*|---*)
      continue;;
  esac
  echo "$line"
done << \EOF
/ >blablabla
title 1 
-------
title 2
-------
...
-------
title n
/ > 
EOF
于 2012-05-20T22:10:49.170 回答