我有两个文本文件,file1 和 file2。在 file1 中,我想从 0 开始在第二列(空格后)进行编号。然而,这个新的编号应该与 file2 中的编号相匹配。
文件1.txt
b/boat_deck/19405.jpg 19
b/boat_deck/19491.jpg 19
c/church_outdoor/32697.jpg 325
c/church_outdoor/32110.jpg 325
c/courtyard/42770.jpg 42
c/courtyard/42654.jpg 42
文件2.txt
val/00000533.jpg 325
val/00000378.jpg 19
val/00000524.jpg 42
带有新编号的期望输出。如您在 newfile1 中看到的,19 被替换为 0,325 被替换为 1,42 被替换为 2。同样,在 newfile2 中,第二列中的数字与新编号相对应(来自 newfile1)。
新文件1.txt
b/boat_deck/19405.jpg 0
b/boat_deck/19491.jpg 0
c/church_outdoor/32697.jpg 1
c/church_outdoor/32110.jpg 1
c/courtyard/42770.jpg 2
c/courtyard/42654.jpg 2
新文件2.txt
val/00000533.jpg 1
val/00000378.jpg 0
val/00000524.jpg 2
答案1
怎么样
awk '
BEGIN{n=0}
NR==FNR && a[$2]=="" {
a[$2]=n++
}
{
$2=a[$2]; print $0 > "new"FILENAME
}' file1.txt file2.txt