「wget」出力でテキストの一部を選択してファイルに書き出しますか?

「wget」出力でテキストの一部を選択してファイルに書き出しますか?

FTPサイトをテストするための次の小さなスクリプトがあります。

#!/bin/bash

wget -O /dev/null ftp://someftpsite:[email protected]/testdump300 2>&1 | \
   grep '\([0-9.]\+ [M]B/s\)' >> wget300.log

表示される出力は次のとおりです。

2018-07-26 22:30:06 (22.7 MB/s) - '/dev/null' saved [104857600]

さて、今私は次のことをしたいと思います:

2018-07-26 22:30:06 22.7

誰でも助けることができますか?awkorを使用する必要があるようですsed

ベストアンサー1

使用awk:

$ wget -O /dev/null ftp://someftpsite:[email protected]/testdump300 2>&1 | \
   awk '/[0-9]+ [M]B\/s/{ sub("\\(",""); print $1,$2,$3 }' >> wget300.log

これにより、正規表現パターンを検索するgrep必要がなくなります。速度の前のものをawk削除してから、列1、2、3(日付、時間、速度)を印刷します。(

おすすめ記事