使用awk更改文件中第一列的值
我有一个.csv文件,它有多个列,我想将文件中第一列的值更改为所有行的正值,除非它是负值 如果我有文件使用awk更改文件中第一列的值,awk,sed,Awk,Sed,我有一个.csv文件,它有多个列,我想将文件中第一列的值更改为所有行的正值,除非它是负值 如果我有文件 product,0 0,no way brand,0 0 0,detergent product,0 0 1,sugar negative,0 0 1, sight 我想去 positive,0 0,no way positive,0 0,detergent positive,0 0 1,sugar negative,0 0 1, sight 我如何使用awk实现这一点?这个awk单行程序
product,0 0,no way
brand,0 0 0,detergent
product,0 0 1,sugar
negative,0 0 1, sight
我想去
positive,0 0,no way
positive,0 0,detergent
positive,0 0 1,sugar
negative,0 0 1, sight
我如何使用awk实现这一点?这个awk单行程序应该可以帮助您:
awk -F, -v OFS="," '$1="positive"' file
由于您使用sed标记:
OP新要求的更新:
或:
这可能适用于GNU sed:
sed '/^negative,/!s/^[^,]*/positive/' file
如果第一个单词不是负数,就把它改成正数。Kent,我只是根据我的数据稍微编辑了一下这个问题。谢谢
awk -F, -v OFS="," '$1="negative"==$1?$1:"positive"' file
awk -F, -v OFS="," '"negative"==$1||$1="positive"' file
sed '/^negative,/!s/^[^,]*/positive/' file