История изменений
Исправление AITap, (текущая версия) :
$ cat test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... 88888 BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ file test
test: ASCII text, with CRLF line terminators
$ PERLIO=:unix:crlf perl -lapse'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... VALUE BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ PERLIO=:unix:crlf perl -lapse'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE test | file -
/dev/stdin: ASCII text, with CRLF line terminators
Бонус: можно добавить параметр -i.bak (до --) и получить редактирование файла на месте.
Исправление AITap, :
$ cat test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... 88888 BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ file test
test: ASCII text, with CRLF line terminators
$ PERLIO=:unix:crlf perl -lapse'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE < test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... VALUE BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ PERLIO=:unix:crlf perl -lapse'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE < test | file -
/dev/stdin: ASCII text, with CRLF line terminators
Бонус: можно добавить параметр -i.bak (до --) и получить редактирование файла на месте.
Исходная версия AITap, :
$ cat test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... 88888 BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ file test
test: ASCII text, with CRLF line terminators
$ PERLIO=:unix:crlf perl -laps -e'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE < test
ID1 Name1 Param1 Num11 Num12 Num13 ... Num1N Blabla1
IDX val val3 va4 val5 ssss6 ... VALUE BlaBla1
IDK NameK ParamK NumK1 NumK2 NumK3 ... NumKN Blabla1
$ PERLIO=:unix:crlf perl -laps -e'if($F[0] eq $search){@_=split/(\s+)/,$_; $_[2*($index-1)]=$replace; $_=join"",@_}' -- -index=8 -search=IDX -replace=VALUE < test | file -
/dev/stdin: ASCII text, with CRLF line terminators