Bash文は何をしますか?

Bash文は何をしますか?

次のステートメントが何をしているのか私に説明できますか?

grep `date +%Y-%m-%d --date='1 day ago'` /path/to/file/FILE_PREFIX_\`date +%Y%m%d --date='1 day ago'`.dsv | grep -v 'ERROR' | cut -d "|" -f 2 | sed 's/^0/27/'

ベストアンサー1

次のファイルがあるとしましょう。

$ cat path/to/file/FILE_PREFIX_20150730.dsv
2015-07-29|0100
2015-07-30|0200
2015-07-30|0300
2015-07-31|0400

次に、(少し固定された)コマンドが実行する操作を見てください。

$ grep `date +%Y-%m-%d --date='1 day ago'` path/to/file/FILE_PREFIX_`date +%Y%m%d --date='1 day ago'`.dsv  | grep -v 'ERROR' | cut -d "|" -f 2 | sed 's/^0/27/'
27200
27300

簡単に言えば、名前が昨日の日付に基づいているファイルを見て、そのファイルの形式で昨日のpath/to/file/FILE_PREFIX_20150730.dsv日付を参照するすべての行を見つけます2015-07-30。その後、文字も含まれているすべての行を削除しますERROR。残りの行は文字に基づいてフィールドで区切られます|。行の2番目のフィールドを抽出します。 2番目のフィールドが0で始まる場合、0は置き換えられます27

おすすめ記事