我有一个包含大量字符串单词的文件,被管道切断。我希望有一个脚本(用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
取代,依此类推。
怎么做?谢谢!
答案 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
然后用值
替换原始单词