次のステートメントが何をしているのか私に説明できますか?
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
。