我有这个文件:
16492674422392|Alberto|Parra|female|1985-09-22|2012-09-01T01:30:59.228+0000|190.96.12.239|Chrome
> 16492674424948|Peng|Chen|female|1984-07-26|2012-09-23T00:51:52.900+0000|1.4.10.198|Internet
> Explorer
> 16492674425075|Changpeng|Xu|female|1984-03-27|2012-10-02T03:55:00.946+0000|1.50.15.119|Firefox
> 16492674425398|Prince|Kobayashi|male|1989-08-07|2012-09-30T03:30:41.772+0000|14.101.89.18|Chrome
> 16492674426410|Yang|Wei|male|1980-07-01|2012-10-01T13:11:48.528+0000|27.144.204.193|Firefox
我希望用户:
我用:
./tool.sh 16492674426410 3 replacement
作为输入,我运行的代码是:
awk -v antik1=$1 -v antik2=$2 '
{
sub(antik1, antik2);
print;
}' persons.dat.txt
此脚本不允许用户选择列和ID。我该如何修改它以便按我的意愿工作?
答案 0 :(得分:0)
试试这个测试版本:
#!/bin/bash --
awk -v anid="${1}" -v antik1="${2}" -v antik2="${3}" '
BEGIN {
FS="|";
OFS="|";
}
{
if ($1 == anid) {
$antik1=antik2;
}
print;
}' persons.dat.txt
测试:
$ ./tool.sh 16492674426410 3 replacement
16492674422392|Alberto|Parra|female|1985-09-22|2012-09-01T01:30:59.228+0000|190.96.12.239|Chrome
16492674424948|Peng|Chen|female|1984-07-26|2012-09-23T00:51:52.900+0000|1.4.10.198|Internet Explorer
16492674425075|Changpeng|Xu|female|1984-03-27|2012-10-02T03:55:00.946+0000|1.50.15.119|Firefox
16492674425398|Prince|Kobayashi|male|1989-08-07|2012-09-30T03:30:41.772+0000|14.101.89.18|Chrome
16492674426410|Yang|replacement|male|1980-07-01|2012-10-01T13:11:48.528+0000|27.144.204.193|Firefox