「時間」列を対応する値に置き換えます。

「時間」列を対応する値に置き換えます。

次の形式のファイルがあります。

"2004-04-19 12:25:57" 44 44
"2004-04-19 13:39:32" 36 36
"2004-04-19 14:00:53" 34 34

2つの新しいファイルが必要です。

a)次のように、ファイルの最初の列の「時間」値を1から始まる数字に置き換えるファイル:

1 44 44
2 36 36
3 34 34

b) 次のように、ファイルの最初の列の「時間」値を数値 Unix Tamestamp データで置き換える別のファイル:

1082377557 44 44
1082381972 36 36
1082383253 34 34

ベストアンサー1

次のライナーを使用できますbash

i=1; while IFS=' ' read a b c; do echo "$i $c" >>foo.txt; ((i+=1)); \
     echo "$(date -d "${a#\"} ${b%\"}" '+%s')" "$c" >>bar.txt; done <file.txt

拡張形式:

i=1
while IFS=' ' read a b c; do 
    echo "$i $c" >>foo.txt
    ((i+=1))
    echo "$(date -d "${a#\"} ${b%\"}" '+%s')" "$c" >>bar.txt
done <file.txt

実行後、以下がfoo.txt表示されます。

1 44 44
2 36 36
3 34 34

そして、次bar.txtのようになります。

1082377557 44 44
1082381972 36 36
1082383253 34 34

おすすめ記事