使用awk和sed将一些值插入到文件中

时间:2016-02-16 11:13:30

标签: bash awk sed

让我们假设有一些带有这些数据的file.txt:

@@comp1,1111,1111,pass
@@comp2,2222,2222,pass
.
.
@@comp34,error,,,fail
.
.
@@comp65,6565,6565,pass

然后我必须插入遗漏的值,这里是:

expected=3434,observed=0000

在“失败”之前的适当字段中。我还有$line_number应该插入的地方:

 @@comp34,error,3434,0000,fail

我尝试了不同的解决方案,但它们不起作用。 e.g:

new1=`awk -n=$line_number -F, '{print $3}' text.txt` | sed 's/$new1/$expected' > text.txt
new2=`awk -n=$line_number -F, '{print $4}' text.txt` | sed 's/$new2/$observed' > text.txt

1 个答案:

答案 0 :(得分:2)

您可以试试selector

awk

输出将是:

awk -F, -vln="$line" -vexpe="$expected" -vobs="$observed" 'NR==ln{$3=expe;$4=obs}1' OFS=, file