在文件编辑中,如何用增量整数替换所有字符串单词?

时间:2015-09-04 17:25:32

标签: string bash file edit

我有一个包含大量字符串单词的文件,被管道切断。我希望有一个脚本(用bash或任何其他编程语言编写)能够用增量唯一整数(类似ID)替换每个单词。

来自这样的输入:

aaa|ccccc|ffffff|iii|j
aaa|ddd|ffffff|iii|j
bb|eeee|hhhhhh|iii|k

我想要这样的东西

1|3|6|8|9
1|4|6|8|9
2|5|7|8|10

即:aaa已被1取代,bb已被2取代,依此类推。

怎么做?谢谢!

2 个答案:

答案 0 :(得分:1)

拯救...... 这将按行进行编号,我不确定它是否足以使其成为柱状。

 docker exec  -ti 6e2355917804  /bin/bash 

将单词关联转换为另一个文件,您可以替换

 docker attach 6e2355917804

awk -F "|" -vOFS="|" '{
     line=sep="";
     for(i=1;i<=NF;i++) {
        if(!a[$i])a[$i]=++c;
        line=line sep a[$i];
        sep=OFS
     }
     print line
}' words

1|2|3|4|5
1|6|3|4|5
7|8|9|4|10

答案 1 :(得分:0)

您可以定义关联数组

declare -A array

使用单词作为键,使用增量数字作为值

array[aaa]=$n

然后用值

替换原始单词