Ես նոր եմ shell scripting-ում, այնպես որ ես ձեր ամբողջ օգնության կարիքն ունեմ իմ նպատակին հասնելու համար: Ես ունեմ input.csv անունով ֆայլ, որը բաղկացած է ստորև ներկայացված տվյալներից,
G22822 277 OR2
G22822 329 OR9
G22940 286 OR3
G22940 412 OR7
G25365 289 OR3
Այժմ, OR2
, OR9
, OR3
, OR7
և OR3
-ը նույնպես տարբեր ֆայլեր են, որոնց անունները al_or2.cap
, al_or9.cap
, al_or3.cap
, al_or7.cap
և al_or3.cap
են՝ տարբեր ճանապարհով: Այս գլխարկային ֆայլերում առկա տվյալները հետևյալն են.
al_or2.cap:
277 ASCII GRP 184578924
102 ASCII GRP 754815923
al_or9.cap:
981 ASCII GRP 542189353
329 ASCII GRP 158203981
Բոլոր գլխարկային ֆայլերում առկա իմաստուն տվյալների նման:
Եթե տեսնում եք input.csv (G22822 277 OR2) առաջին տողը, ինչպես նշված է, ես պետք է գնամ al_or2.cap և որոնեմ 277 հիմնաբառը և տպեք G22822 և 542189353 (G22822 առկա է input.csv և 542189353-ում) կամ ներկա պահին: .
Այնուհետև այս G22822 329 OR9-ի համար ես պետք է գնամ al_or9.cap և տպեմ G22822 և 158203981:
Իմ պահանջվող ելքը, օրինակ՝
G22822 184578924
G22822 158203981 and so on..
Խնդրում եմ օգնեք ինձ հասնել իմ նպատակին:
"shell"
, ապա խնդիրներ կլինեն${c,,}
-ի հետ, որը բաշիզմ է: (ավելի լավ է օգտագործելtr
, քանի դեռ հաստատ իմանաք) 23.11.2018:)
23.11.2018awk -v a=$a -v b=$b -vc=$c 'b==$1{printf "%s %s %s %s\n", a, $4, b, c}' tmp/al_$(echo $c | tr '[A-Z]' '[a-z]').cap
26.11.2018