如何在 field5 及以上的单词中表示 1 的位置(仅考虑冒号后的 1);从右到左数。
输入:
TT-124 06-03-14 08-02-10 FAS CAT1:10
TT-125-1 05-03-14 10-06-08 CAS CAT2:1010 FAT1:10000
TT-125-3 07-03-14 11-02-06 FAS FAT1:1101
SS-120-1 05-03-14 09-04-07 FAS CAT3:100000
AA-121-0 06-03-14 08-03-06 CAS FAT2:11 CAT1:101100
输出:
TT-124 06-03-14 08-02-10 FAS CAT1:1
TT-125-1 05-03-14 10-06-08 CAS CAT2:3 CAT2:1 FAT1:4
TT-125-3 07-03-14 11-02-06 FAS FAT1:0 FAT1:2 FAT1:3
SS-120-1 05-03-14 09-04-07 FAS CAT3:5
AA-121-0 06-03-14 08-03-06 CAS FAT2:0 FAT2:1 CAT1:2 CAT1:3 CAT1:5
我尝试了以下脚本(如某人所建议的那样),该脚本在 cygwin 中有效,但在使用 nawk 或 /usr/xpg4/bin/awk 的 Solaris 10 上无效 我如何在 solaris 中实现?
awk '{for(i = 5; i <= NF; i++) {split($i, a, ":"); $i = ""; split(a[2], b, "");
for(j = 1; j <= length(b); j++) {if(b[j] == 1)
{$i = ($i == "") ? (a[1] ":" length(b) - j) : ($i FS a[1] ":" length(b) - j)}}};
print $0}' file