次の形式のファイルがあります。
"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