0

我有一个包含多列的 .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 完成此任务?

4

2 回答 2

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
于 2018-10-19T15:11:00.827 回答
0

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

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

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

于 2018-10-19T16:44:06.957 回答