Puncte:0

Găsiți și înlocuiți întreaga linie a fișierului sursă

drapel ma

Lucrez la un script batch care va apela fișierul .awk pentru a executa căutarea și înlocuirea.

  1. fișier batch fișier script.cmd -->

    @gawk -f „%Modify.awk%” „%Temp.csv%” < „%Source.csv%” > „%Output.csv%”.
    
  2. Temp.csv conține,

    | UID | Nume | Num | Loc | Adresa | Str
    |95 | Banca| Amal| | Che| | KKKK
    
  3. Sursa conține

    | UID | Nume | Num | Loc | Adresa | Str
    |34 | Per | ffff | hhhh | kkkk | llll | KKKK
    |95 | Banca| ffff | hhhh | XXXX | AAAA | LLLL
    |100 | Hel | Alăturați-vă | JJJJ | HHHH
    

După executarea scriptului batch, vreau să am rezultatul ca mai jos (adică) valoarea fișierului Temp ar trebui să fie înlocuită în sursă.

Ieșire:

| UID | Nume | Num | Loc | Adresa | Str
|34 | Per | ffff | hhhh | kkkk | llll | KKKK
|95 | Banca| Amal| | Che| | KKKK
|100 | Hel | Alăturați-vă | JJJJ | HHHH

Modifică.awk:

ÎNCEPE{
#
# Definiți separatorul de câmp
#
  FS="\t";
  OFS="\t";
}
{
  /^95/
    {
     getline 
     imprimați 1 USD
     }
}
SFÂRŞIT{
# printează „NReject: „,NReject,” pe un total de: „,NR-1;
}

NOTĂ: Fișierul Temp și Sursă este câmpuri de fișier .csv separate cu valoarea Tab

SEWTGIYWTKHNTDS avatar
drapel cn
Acesta este un script awk
Puncte:1
drapel cn

Aș crea un script sed pentru a înlocui fișierul temporar, deoarece sed este proiectat pentru această sarcină. Awk este mai bun la alte lucruri.

de exemplu: creați un fișier rep.sed cu comenzile de înlocuire, pentru a găsi și înlocui liniile care încep cu 95 ați putea folosi:

s/^|95.*/|95 | Banca| Amal| | Che| | KKKK/g

apoi rulați sed pe sursa dvs

sed -f rep.sed fişier sursă

Transmite ieșirea într-un fișier nou când funcționează

sed -f rep.sed sourcefile > updatedsourcefile

adăugarea altor linii la rep.sed va efectua toate înlocuirile într-o singură trecere

s/^|95.*/|95 | Banca| Amal| | Che| | KKKK/g
s/^|100.*/|100 | Banca| Amal| | Che| | LLLL/g

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.