sedを使用した問題の分析

sedを使用した問題の分析

0test.txt次のコードスニペットを含むテキストファイルがあります。(複数のhttpおよびhttps URLリンクがありますが、この行には個別にリストされています。)

player.setup({
  file: 'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs',
  width: "100%",
  aspectratio: "16:9",

});

sed次のコマンドを実行できます。

cat /tmp/0test.txt | sed -n -e "/^ *file: */ { s/^ *file: *'//; s/', *$//p}"

そして正しいURLリンクを返します。

http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyXs

ただし、ファイルが0test.txt次の場合:

player.setup({
          file: 
'http://website.com/site/myStream/playlist.m3u8?wmsAuthSign=c2VydmVyX3RpbWU9MTIvNC8yMDE5IDk6MTY6NTggUE0maGFzaF92YWx1ZT16RXpiUWowQ0V4TDJER3ExQnFZTEd3PT0mdmFsaWRtaW51dGVzPTM2MCZzdHJtX2xlbj0w',
          width: "100%",
          aspectratio: "16:9",
            aspectratio: "16:9"

    });

私は対価で何も得られません。この問題をどのように解決できますか?

ベストアンサー1

この特定のケースではgrepより便利です。最初のステップとしてline:専門用語を検索し、出力に次の行を追加します。次にURL自体を使用してを選択しgrep、最後にsed続く一重引用符とカンマを削除します。

grep -A 1 'file:' <infile(s)> | grep -oE 'http.*' | sed "s:',$::" 

おすすめ記事