Que tal
awk '
BEGIN{n=0}
NR==FNR && a[$2]=="" {
a[$2]=n++
}
{
$2=a[$2]; print $0 > "new"FILENAME
}' file1.txt file2.txt
Eu tenho dois arquivos de texto, arquivo1 e arquivo2. No arquivo1, gostaria de iniciar a numeração na segunda coluna (após o espaço) de 0. No entanto, essa nova numeração deve corresponder à numeração no arquivo2.
file1.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
file2.txt
val/00000533.jpg 325
val/00000378.jpg 19
val/00000524.jpg 42
Saída desejada com nova numeração. Como você pode ver no newfile1, 19 foram substituídos por 0, 325 por 1 e 42 por 2. Da mesma forma, em newfile2, os números na segunda coluna correspondem à nova numeração (de newfile1).
newfile1.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
newfile2.txt
val/00000533.jpg 1
val/00000378.jpg 0
val/00000524.jpg 2
Que tal
awk '
BEGIN{n=0}
NR==FNR && a[$2]=="" {
a[$2]=n++
}
{
$2=a[$2]; print $0 > "new"FILENAME
}' file1.txt file2.txt