0

嗨,我想解析一些数据,并将某些值替换为字符串,然后再保存到 CSV

Sample Lines
============
Time,11,Name,Jack,Cost,1300,Paid,1
Time,13,Name,Tim,Cost,1300,Paid,0

grep & cut (&awk)
============
grep -i "Time,\d+,Name,\w+,Cost,\d+,Paid" | cut -d, -f2 -f4 -f6 -f7 | awk (replace f7 with True if 1 or replace f7 with False if 0)

谢谢

编辑:修复了我的 grep。

4

2 回答 2

3

给出输入和输出示例总是好的。

awk 可以单独完成,无需 grep 和 cut。试试这一行:

awk -F, -v OFS="," '{$8=$8==1?"True":"False";print $2,$4,$6,$8}' file

使用您的数据, awk 行给出:

11,Jack,1300,True
13,Tim,1300,False
于 2013-07-24T19:31:16.100 回答
0

GNU 的代码:

sed -r 's/\S+,(\S+,)\S+,(\S+,)\S+,(\S+,)\S+,(.)/\1\2\3\4/;s/1$/True/;s/0$/False/' file

$猫文件
时间,11,姓名,杰克,费用,1300,付费,1
时间,13,姓名,蒂姆,费用,1300,付费,0

$ sed -r 's/\S+,(\S+,)\S+,(\S+,)\S+,(\S+,)\S+,(.)/\1\2\3\4/;s/ 1$/True/;s/0$/False/' 文件
11,杰克,1300,真
13,蒂姆,1300,假
于 2013-07-24T20:12:06.247 回答