微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用awkreplaceUNIX列

我想用idreplace用户给出的特定列中的数据,用户再次给出一个值。 因此,用户在列中给出行,列和要replace的值的id。

我有这个代码

awk -v antik1=$1 -v antik2=$2 '{sub(/antik1/,"$antik2") ; print }' persons.dat.txt

但是当我像这样运行它

./tool.sh Yang POUTSES

它什么也不给

比较不同列的两个文件并打印不同的列

如何在Bash脚本中的AWK中传递string作为参数

使用sed(或awk)replace每行上的前两个斜线

从shell脚本运行awk文件,而不指定awk的确切位置

pipe道连续stream到多个文件

persons.dat.txt:

933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox 1129|Carmen|Lepland|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer 4194|Hồ ChÃ|Do|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer 8333|Chen|Wang|female|1980-02-02|2010-03-15T10:21:43.365+0000|1.4.16.148|Internet Explorer 8698|Chen|Liu|female|1982-05-29|2010-02-21T08:44:41.479+0000|14.103.81.196|Firefox

如何parsing多行logging(用awk?)

多线裁剪

awk比较两个文件中的列,另一列的impute值

高级“uniq”与“唯一部分正则expression式”

使用Awk处理每个logging具有不同固定宽度字段的文件

你的代码根本不符合你的要求:

用户给出的行,列和要替换的值的id

我会解释的

awk -v row=2 -v col=3 -v new_value="Hello World" ' BEGIN { FS = OFS = "|" } NR == row {$col = new_value} {print} ' persons.dat.txt

请注意这里使用的变量:

一个未经修改的变量就像C一样,用变量的值替换(“row”变量的用法

$符号就像是一个操作符,它引用由值给出的字段号的值(这里是“$ col”)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐