簡體   English   中英

僅打印與bash腳本的多個字符串不同的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM