您好我想解析一些数据,并且在保存为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。
答案 0 :(得分: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
答案 1 :(得分:0)
GNU代码sed:
sed -r 's/\S+,(\S+,)\S+,(\S+,)\S+,(\S+,)\S+,(.)/\1\2\3\4/;s/1$/True/;s/0$/False/' file
$ cat file Time,11,Name,Jack,Cost,1300,Paid,1 Time,13,Name,Tim,Cost,1300,Paid,0 $ sed -r 's/\S+,(\S+,)\S+,(\S+,)\S+,(\S+,)\S+,(.)/\1\2\3\4/;s/1$/True/;s/0$/False/' file 11,Jack,1300,True 13,Tim,1300,False