
Záměna konkrétní části textu ve dvou souborech
Dobrý den, potřebuju poradit, mám dva textové soubory a potřebuju u jednoho z nich, který je obsáhlejší, zaměnit material ID z textového souboru, který je menší, ale zato má správné materiál ID, které právě potřebuju převést.
Potřebuji program, který by udělal toto: našel v obou souborech stejné "N:" ve formátu (viz obrázek) "xxxxx.BMP" a zkopíroval material ID, které je o řádek výš nad N: "xxxxx.BMP" a zaměnil ho v druhém souboru.
Takhle vypadá jedna sekce:
Material: 0x276bcdd4f9f458c6
N: "5VYLOHA3.BMP"
A: 128
A: 0
H: 0x00601000
P: 0
D: 0
G: 0
S: 0x43ed7e721ef27b4b
U: 0xc9fb8714
Parameter: 0
Sampler: 1
C: "S000"
U: 0 0
S: 02000202010000000000000000000000
T: "5vyloha3.dds"
Děkuji
awk
edit: ale to imho nedáš.
edit2: abys neřekl, tak tady máš nápovědu od přítele z poradny: https://superuser.com/questions/880875/bash-sed-awk-replace-string-from-a-file-searching-in-another-file
Nepoznám iné programovacie jazyky, než VBA, ale to mi na túto úlohu úplne stačí - Excel má na toto potenciál...
Je to možno škrabanie sa za ľavým uchom pravou rukou, ale ak to splní cieľ a som schopný to urobiť, čo mi bráni si takto pomôcť?
Makro bude možno skôr hotové ako nájdenie a úprava existujúceho programu...
Otvoril by som si oba súbory v Exceli, pričom by som prostredníctvom užívateľského dialógu pre import textu použil ako oddeľovač dvojbodku.
Jeden súbor by som dal do jedného hárka, druhý súbor do druhého hárka.
K tomu spomínané makro, ktoré vyhľadá a doplní to, čo potrebuješ (nie je problém) a na záver by oddelené stĺpce spojilo do jedného s doplnením dvojbodky a uložilo ako txt.
Ak nenájdeš iné riešenie, môžem touto formou pomôcť, ale k vytvoreniu makra by boli potrebné ďalšie doplňujúce informácie, napr. či štruktúra je u všetkých položiek rovnaká (pre použitie kroku v cykle) a pod.
Prípadne ak ovládaš makrá v Exceli, možno už táto nápoveda Ti postačí k tomu, že si to urobíš sám.
A keď sa na to tak lepšie pozerám, tak za podmienky jednoznačného priradenia ID k N, by nebolo potrebné ani makro - postačili by 2 vzorce.
Jeden z nich by v prvom hárku prenášal ID materiálu za hodnotu N. Druhý by prostredníctvom funkcie VLOOKUP v druhom hárku vyhľadal hodnotu N v prvom hárku a vrátil by ID materiálu získaného prvým vzorcom do bunky za hodnotu pôvodného ID v druhom hárku. Pár manuálnych krokov (filter, kópia, zlúčenie dvoch stĺpcov funkciou CONCATENATE s pridaním dvojbodky a prekopírovanie stĺpca svojimi vlastnými hodnotami, výmaz všetkých zbytočných stĺpcov a uloženie ako txt) a hotovo...
možná replacetxt:
https://www.cylog.org/tools/cmdline.jsp