Linux awk հրաման


Այս էջում

  1. The awk հրամանը
  2. Հիմնական շարահյուսություն
  3. awk Օրինակներ
  4. Հաճախակի տրվող հարցեր
  5. Եզրակացություն

Linux shell-ում առկա տեքստի մշակման բազմաթիվ գործիքների շարքում awk-ն առանձնանում է իր հզորությամբ և բազմակողմանիությամբ: Սկզբնապես մշակվել է 1970-ականներին Aho-ի, Weinberger-ի և Kernighan-ի կողմից, awk-ն ավելին է, քան պարզապես հրաման. այն ամբողջական ծրագրավորման լեզու է, որը նախատեսված է տեքստային ֆայլերի մշակման և վերլուծության համար:

The awk հրամանը

awk-ը գործում է ֆայլերի և հոսքերի վրա՝ որպես գրառումների և դաշտերի հաջորդականություն: Լռելյայնորեն, գրառումը սահմանվում է որպես տող, և դաշտերը բաժանվում են բացատներով, թեև երկուսն էլ կարող են վերասահմանվել:

Հիմնական շարահյուսություն

awk-ի հիմնական շարահյուսությունը հետևյալն է.

awk 'pattern {action}' file
  • Pattern. Նշում է, թե երբ պետք է կատարվի գործողությունը: Բաց թողնելու դեպքում գործողությունը կիրառվում է յուրաքանչյուր տողի վրա:
  • Գործողություն. հրամանների մի շարք, որոնք կատարվում են, երբ օրինաչափությունը համընկնում է: Գործողությունները փակված են գանգուր փակագծերում {}:

awk Օրինակներ

Տպեք ֆայլի առաջին սյունակը

awk '{print $1}' file.txt

Այս հրամանը տպում է յուրաքանչյուր գրառման առաջին դաշտը (սովորաբար, յուրաքանչյուր տողի առաջին բառը) file.txt-ից:

Սյունակի գումարը և միջինը

awk '{sum+=$2; count++} END {print "Sum =", sum; print "Average =", sum/count}' file.txt

Այս հրամանը հաշվարկում է file.txt-ի երկրորդ սյունակի արժեքների գումարը և միջինը:

Զտում ըստ պայմանի

awk '$3 > 100' file.txt

Սա ցուցադրում է տողեր file.txt-ից, որտեղ երրորդ դաշտը 100-ից մեծ է:

Հաճախակի տրվող հարցեր

Ինչպե՞ս կարող եմ փոխել դաշտերի բաժանիչը awk-ում:

Օգտագործեք -F տարբերակը, որին հաջորդում է ցանկալի բաժանիչը: Օրինակ, awk -F, «{print $2}» file.csv-ը կտպագրի CSV ֆայլի երկրորդ դաշտը:

Կարո՞ղ է awk-ը միաժամանակ մի քանի ֆայլ մշակել:

Այո, awk-ը կարող է հաջորդաբար մշակել մի քանի ֆայլ: Օգտագործեք awk «{print}» file1.txt file2.txt՝ file1.txt-ը և file2.txt-ը հաջորդաբար մշակելու համար:

Ինչպե՞ս կարող եմ awk-ը ինտեգրել shell փոփոխականների հետ:

Դուք կարող եք shell փոփոխականները փոխանցել awk-ին՝ օգտագործելով -v տարբերակը: Օրինակ՝ var="value"; awk -v awkVar="$var" '{print awkVar}' file.txt-ը կտպագրի shell փոփոխականի արժեքը file.txt-ի յուրաքանչյուր տողի համար:

Հնարավո՞ր է արդյոք փոփոխել ֆայլը տեղում՝ օգտագործելով awk:

Ոչ, awk-ն ուղղակիորեն չի աջակցում տեղում խմբագրումը, ինչպիսին sed -i-ն է: Այնուամենայնիվ, դուք կարող եք հասնել դրան՝ վերահղելով awk-ի ելքը ժամանակավոր ֆայլ, այնուհետև վերանվանելով այն բնօրինակ ֆայլին:

Ավկը կարո՞ղ է օգտագործվել բարդ տեքստի մշակման համար:

Բացարձակապես։ Թեև awk-ը պարզ է հիմնական առաջադրանքների համար, այն նաև բավականաչափ հզոր է բարդ տեքստի մշակման համար: Այն աջակցում է զանգվածների, գործառույթների և կանոնավոր արտահայտությունների՝ այն հարմարեցնելով տեքստի մանիպուլյացիայի տարբեր առաջադրանքների համար:

Եզրակացություն

awk հրամանը Unix-ի վրա հիմնված համակարգերի համար հրամանի տողի տեքստի մշակման բազմակողմանի գործիք է: Նրա պարզ, բայց ամուր առանձնահատկությունները դարձնում են այն անփոխարինելի գործիք բոլորի համար, ովքեր զբաղվում են տեքստային ֆայլերով՝ տեղեկամատյանների վերլուծությունից մինչև տվյալների արդյունահանում: awk-ին տիրապետելով՝ օգտվողները կարող են օգտագործել Linux-ում տեքստի մանիպուլյացիայի ողջ ներուժը: