ファイルfile.txt
から次のような行を取得しようとしています。
>This is line 1.</li>
>This is line 2.</li>
>This is line 3.</li>
>This is line 4.</li>
>
で始まり</li>
で終わるコンテンツを取得する必要があるため、出力はThis is line 1.
This is line 2.
などになります。私はフォーラムでこれを調べましたが、解決策が見つかりませんでした。この solution も機能しませんでした。
最終的に、Webページからいくつかの行を取得する必要があります。最初にcurl webpage
を実行し、次にgrepコマンドを使用して、>
で始まり</li>
で終わる行をgrepします。
ありがとう。
これで十分です:
grep '^>.*</li>$' input-file
^
および$
は、これらの部分がそれぞれ行の先頭と末尾でアンカーであることを保証します。
次のこともできます。
grep -x '>.*</li>' input-file
-x
は完全に一致するものを探します。行全体がパターンに一致する必要があります(これは^
および$
がパターンにラップされることを意味します)。
これは入力ファイルです。
$ cat /tmp/tmp.txt
>This is line 1.</li>
invalid line 1
>This is line 2.</li>
>This is line 3.</li>
invalid line 2
>This is line 4.</li>
last invalid line
grep
およびawk
を使用して、必要な文字列を抽出します。
$ cat /tmp/tmp.txt | grep -E '>*</li>' | awk -F\> '{ print $2 }' | awk -F\< '{ print $1 }'
This is line 1.
This is line 2.
This is line 3.
This is line 4.