Responda a estas duas perguntas e você resolverá seu problema.
Qual é o delimitador de campo padrão (para join
)? Como você muda isso?
Eu tenho dois arquivos aos quais gostaria de participar com base no número da loja de padaria.
[Arquivo 1] bakedGoods.txt
1:Chocolate Cookies:111
2:Banana Muffins:222
3:Apple Pie:333
4:Strawberry Cheesecake:444
5:Pineapple Turnover:555
Onde a coluna 1 é o número do item, a coluna 2 é o nome do item e a coluna 3 é o número da loja.
[Arquivo 2] bakeryStores.txt
111:Cookies Cookies Cookies
222:Bellas Desserts Co.
333:Apples N' Sweets
444:Cheesecake Emporium
777:Estrellas Bakery
888:Suzy's Baked Goods
Onde a coluna 1 é o número da loja de padaria e a coluna 2 é o nome da padaria.
Meu objetivo é unir as informações que possuem o mesmo número de loja de padaria usando o comando join (suponho que seja o melhor caminho). Isso significa coluna 3 para o arquivo 1 e coluna 1 para o arquivo 2. Assim como , exiba uma mensagem "Não em estoque" para os campos vazios que não podem ser pareados. (Eu suponho que usando a opção -e "Não na loja" é o melhor caminho a seguir. O abaixo é o que eu estou tentando alcançar.
111:Chocolate Cookies:Cookies Cookies Cookies
222:Banana Muffins:Bellas Desserts Co.
333:Apple Pie:Apples N' Sweets
444:Strawberry Cheesecake:Cheesecake Emporium
Not in store
Not in store
Eu tento juntar os dois arquivos pelo número da loja, também estou usando a opção -e (para a mensagem), mas nada muda. Não vejo saída também.
Eu tentei join -1 3 -2 1 -e "Not in store" bakedGoods.txt bakeryStores.txt
Eu entendo o que eu quero fazer e como fazê-lo, mas não sei por que ele não está exibindo nada. Normalmente, quando participo ou combino arquivos, sem acrescentar, posso ver o resultado imediatamente. Eu acrescentei, mas os dois arquivos permanecem os mesmos.
Tags text-processing join linux