Linux awk հրաման
Այս էջում
- The awk հրամանը
- Հիմնական շարահյուսություն
- awk Օրինակներ
- Հաճախակի տրվող հարցեր
- Եզրակացություն
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-ում տեքստի մանիպուլյացիայի ողջ ներուժը: