HTMLファイルがあります。これを行うすべての行を削除したいと思います。いいえで始めてください<tr>
。
私は試した:
cat my_file | sed $'
s/^[^tr].*//
' | sed '/^$/d'
ただし、すべての行を削除します。
答え1
GNU sedを使ってこれを試してください:
sed -n '/^<tr>/p' file
または
sed '/^<tr>/!d' file
答え2
sed -e '/^<tr>/d'
その間の部分は/
正規表現です。このd
コマンドは一致する行を削除します。
アップデート:こんな、ダメだと言われたのを見て申し訳ありません。だから
sed -e '/^<tr>/!d'
これは!
ゲームの意味を否定します。
答え3
次の場合sed
:
sed -ni '/^<tr>/p' file
-i
-n
すべての行が印刷されないように、ファイルを内部で編集してくださいsed
。正規表現は、^
()で始まるすべての行と一致<tr>
し、その行(p
)が印刷されることを意味します。
そしてgrep
:
grep -E '^<tr>' file
-E
拡張正規表現を解釈するには、grepを使用してください。
そしてawk
:
awk '/^<tr>/' file
または純粋bash
:
while IFS= read -r l; do [[ "$l" =~ ^\<tr\> ]] && echo $l; done <file
[[
bash 内部条件式です。$l
正規表現と比較し、成功すると()&&
行を印刷しますecho
。
答え4
最も簡単で簡単な答えは次のとおりです。
grep '^<tr>' path/to/file
これは、ファイルを直接変更したくない場合(sedのように)、次の行で始まるファイルだけを印刷することをお勧めします。
その後、出力結果が好きならファイルに印刷できます。> file
この場合、特定のコマンドを試す前にファイルをバックアップすることで時間を節約できます。