clo*_*d36 6 unix linux awk sed
如果它等于,我正在寻找替换CSV中的第四列N/A.我正试图改变它-1.
我似乎无法让这个工作.
awk -F , '{ if($4 == "N/A") {$4 = -1} }' test.csv
Run Code Online (Sandbox Code Playgroud)
jay*_*ngh 13
您可以使用以下内容awk:
awk -F, '{ $4 = ($4 == "N/A" ? -1 : $4) } 1' OFS=, test.csv
Run Code Online (Sandbox Code Playgroud)
,为保留csv文件中的分隔符-1如果不是我们保持该值的原样.1 根据我们的测试是否成功,最后打印您的生产线是否有修改的第4列. ($4=="N/A"?-1:$4)是一个三元运算符,检查条件$4=="N/A"是否为真.如果为true,?那么我们分配-1,如果为false,:我们保持字段不变.$ cat file
a,b,c,d,e,f
1,2,3,4,5,6
44,2,1,N/A,4,5
24,sdf,sdf,4,2,254,5
a,f,f,N/A,f,4
Run Code Online (Sandbox Code Playgroud)
$ awk -F, '{ $4 = ($4 == "N/A" ? -1 : $4) } 1' OFS=, file
a,b,c,d,e,f
1,2,3,4,5,6
44,2,1,-1,4,5
24,sdf,sdf,4,2,254,5
a,f,f,-1,f,4
Run Code Online (Sandbox Code Playgroud)