使用awk更改文件中第一列的值

时间:2018-10-19 15:09:04

标签: 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完成此操作?

2 个答案:

答案 0 :(得分:1)

这个awk单线应可为您提供帮助:

awk -F, -v OFS="," '$1="positive"' file

因为您被标记为sed

sed 's/[^,]*/positive/' file

OP的新要求的更新:

awk -F, -v OFS="," '$1="negative"==$1?$1:"positive"' file

或:

awk -F, -v OFS="," '"negative"==$1||$1="positive"' file

答案 1 :(得分:0)

这可能对您有用(GNU sed):

sed '/^negative,/!s/^[^,]*/positive/' file

如果第一个单词不是negative,请将其更改为positive

相关问题