wc հրամանի օրինակներ. Wc - Hey Linux Wiki: Ինչ է wc հրամանը Linux-ում
Ֆայլերի վերլուծությունը նրանց հետ աշխատելու անբաժանելի մասն է: Երբեմն անհրաժեշտ է դառնում հաշվել տեքստի տողերի կամ բառերի քանակը: Թիմը արդյունավետորեն հաղթահարում է այս խնդիրը wc Linux.
Կոմունալը լռելյայն տեղադրված է գրեթե բոլոր GNU/Linux բաշխումների վրա: Այս հոդվածում մենք կանդրադառնանք դրա գործառույթներին և գործնականում կիրառմանը:
Կոմունալ ծրագիրը գործարկելու համար բացեք տերմինալը և մուտքագրեք.
Տերմինալը կսպասի տվյալների մուտքագրմանը: Ստեղների համակցությունը սեղմելուց հետո Ctrl + Դհրամանի թարգմանիչը կդադարեցնի ծրագիրը և կտպագրի երեք թվեր, որոնք ցույց են տալիս մուտքագրված տողերի, բառերի և բայթերի քանակը:
Կոմունալը կարող է մշակել ֆայլերը: Ստանդարտ հրահանգները հետևյալն են.
- wc- կոմունալ անուն;
- ֆայլ- մշակվող ֆայլի անվանումը:
Ծրագիրը կարող է նաև ընդունել անհատական արժեքների վերլուծության պարամետրեր: Առավել օգտագործվածները ներկայացված են ստորև բերված աղյուսակում.
Օբյեկտը պետք է հասկանալ որպես ստանդարտ մուտքային հոսքի վրա ստացված ֆայլ կամ տվյալ:
Հրամանը կարող է մշակել բազմաթիվ ֆայլեր, եթե դրանք առանձնացնեք բացատով կամ ընտրեք դրանք՝ օգտագործելով օրինակ:
Օգտագործելով wc հրամանը
Ստանդարտ մուտքագրման մշակում և ավարտում Ctrl + Դ:
Ըստ վերլուծության՝ մուտքագրվել է 5 բառ պարունակող 4 տող՝ 35 բայթ ծավալով։
Վերահղեք ելքային հոսքը մուտքագրման wc:
Բոլոր ֆայլերը մշակվում են ընդլայնմամբ .շընթացիկ գրացուցակում.
Վերջում ցուցադրվում է ամփոփագիր, որն ամփոփում է յուրաքանչյուր սյունակի արժեքները:
Մենք կցուցադրենք միայն երկու ֆայլերի նիշերի և տողերի քանակը.
Խնդրում ենք նկատի ունենալ. պարամետրերի նշված հերթականությունը չի ազդում տեղեկատվության վերջնական տեսքի վրա: Ծրագիրը միշտ տվյալների ելք է տալիս ձևով ԳԾԵՐ - ԲԱՌԵՐ - ԲԱՅՏ (Նիշեր) [- ՖԱՅԼ]. Եթե պարամետրը բացակայում է, նրա սյունակը պարզապես անտեսվելու է՝ առանց մյուսների վրա ազդելու: Նիշերի թիվը կլինի առաջինը, եթե հրամանը պարունակում է նաև ելքային բայթեր:
Եզրակացություն
Թիմ wc Linux-ը արդյունավետ գործիք է GNU/Linux-ում ֆայլերը վերլուծելու համար: Այն կարող է միաժամանակ մշակել ինչպես ստանդարտ մուտքային, այնպես էլ բազմաթիվ ֆայլեր: Հատուկ տվյալներ ստանալու համար օգտագործվում են հրամանի տողի ընտրանքները:
Առնչվող գրառումներ.
Հոդվածը տարածվում է Creative Commons ShareAlike 4.0 լիցենզիայի ներքո, երբ նյութը պատճենվում է, անհրաժեշտ է հղում աղբյուրին:
Այս հատվածում դուք կիմանաք շատ հետաքրքիր և օգտակար հրամաններ Linux-ում տեքստային տվյալների հետ աշխատելու մասին: Նաև ներառում է bash-ում I/O հոսքերի հետ աշխատելու հիմունքները:
Բառամշակում
Վերադարձ դեպի վերահղում
Ավելի վաղ այս ձեռնարկների շարքում մենք տեսանք > օպերատորի օգտագործման օրինակ՝ հրամանի ելքը ֆայլ վերահղելու համար, ինչպես ցույց է տրված ստորև.$ echo «firstfile» > copyme
Ի հավելումն ֆայլի ելքը վերահղելու, մենք կարող ենք օգտվել այնպիսի հզոր կեղևի հնարավորությունից, ինչպիսին են խողովակները: Օգտագործելով խողովակները, մենք կարող ենք մի հրամանի ելքը փոխանցել մյուսի մուտքին: Դիտարկենք հետևյալ օրինակը.
$ echo «hi there» | wc
1 2 9
Խորհրդանիշ | օգտագործվում է ձախ կողմում գտնվող հրամանի ելքը միացնելու համար աջ կողմում գտնվող հրամանի մուտքագրմանը: Վերևի օրինակում echo հրամանը տպում է «hi there», որին հաջորդում է նոր տողի նիշը: Այս ելքը սովորաբար հայտնվում է տերմինալում, բայց խողովակը այն վերահղում է որպես մուտքագրում wc հրամանին, որը ցույց է տալիս տողերի, բառերի և նիշերի քանակը:
Օրինակ ալիքներով (խողովակներ)
Ահա ևս մեկ պարզ օրինակ.$ լս -ս | տեսակավորել -n
Այս դեպքում, ls -s-ը սովորաբար տպում է ընթացիկ գրացուցակը տերմինալում՝ յուրաքանչյուր ֆայլից առաջ նշված չափերով: Այնուամենայնիվ, դրա փոխարեն մենք ելքը փոխանցում ենք տեսակավորման -n-ին, որը այն կդասավորի թվային եղանակով: Սա շատ հարմար է գրացուցակում առավելագույն տեղ գրավող ֆայլեր գտնելու համար:
Հետևյալ օրինակներն ավելի բարդ են և ցույց են տալիս այն ուժն ու հարմարավետությունը, որին կարելի է հասնել ալիքների միջոցով: Ստորև մենք կօգտագործենք հրամաններ, որոնք դեռ չեն լուսաբանվել, բայց շատ մի կենտրոնացեք դրանց վրա: Փոխարենը, կենտրոնացեք հասկանալու վրա, թե ինչպես են աշխատում խողովակները և ինչպես կարող եք դրանք օգտագործել ձեր ամենօրյա Linux աշխատանքում:
Ապափաթեթավորում ալիքը
Ֆայլը unzip և ապասեղմելու համար կարող եք անել հետևյալը.
$ bzip2 -d linux-2.4.16.tar.bz2
$ tar xvf linux-2.4.16.tar
Այս մեթոդի թերությունը սկավառակի վրա միջանկյալ, unzipped ֆայլի ստեղծումն է: Քանի որ tar-ը կարող է տվյալներ կարդալ անմիջապես իր մուտքագրումից (նշված ֆայլի փոխարեն), մենք կարող ենք ստանալ նույն վերջնական արդյունքը խողովակի միջոցով.
$ bzip2 -dc linux-2.4.16.tar.bz2 | tar xvf -
Վա՜յ Սեղմված tarball-ը բացվեց, և մենք արեցինք առանց միջանկյալ ֆայլի:
Ավելի վավերական ալիք
Ահա խողովակի ևս մեկ օրինակ.$ կատու myfile.txt | տեսակավորել | uniq | wc -l
Մենք օգտագործում ենք cat՝ myfile.txt-ի բովանդակությունը տեսակավորման հրամանին ուղարկելու համար: Երբ տեսակավորումը մուտքագրում է ստանում, այն տեսակավորում է տող առ տող այբբենական կարգով և այդպես ուղարկում է uniq ծրագիր: uniq-ը հեռացնում է կրկնօրինակ տողերը (ի դեպ, uniq-ը որպես մուտքագրում պահանջում է տեսակավորված ցուցակ) և արդյունքն ուղարկում է wc -l: Մենք ավելի վաղ նայեցինք wc հրամանին, բայց առանց դրա ընտրանքների: Երբ նշված է -l տարբերակը, հրամանը ցուցադրում է միայն տողերի քանակը և նիշերի քանակը այս դեպքում չի ցուցադրվում. Դուք կտեսնեք, որ նման խողովակը կտպագրի եզակի գծերի քանակը տեքստային ֆայլ.
Փորձեք ստեղծել մի քանի ֆայլ ձեր տեքստային խմբագրիչում: Օգտագործեք այս խողովակը նրանց վրա և նայեք ձեր ստացած արդյունքին:
Բառերի մշակման փոթորիկը սկսվում է:
Այժմ մենք կանցնենք արագ ստուգման Linux հրամաններստանդարտ բառերի մշակման համար: Քանի որ մենք հիմա շատ ծրագրեր ենք դիտելու, դրանցից յուրաքանչյուրի համար օրինակներ չենք ունենա: Փոխարենը, մենք ձեզ խրախուսում ենք կարդալ տրված հրամանների man էջերը (օրինակ՝ մուտքագրելով man echo) և սովորել յուրաքանչյուր հրամանն ու դրա տարբերակները՝ որոշ ժամանակ անցկացնելով դրանց հետ խաղալով։ Որպես կանոն, այս հրամանները տպում են վերամշակման արդյունքը տերմինալում, այլ ոչ թե ինքնին փոփոխելու ֆայլը: Այս արագ ակնարկից հետո մենք ավելի խորը կանդրադառնանք I/O վերահղմանը: Այսպիսով, այո, արդեն լույս կա թունելի վերջում: :)արձագանքտպում է իր փաստարկները տերմինալում: Օգտագործեք -e տարբերակը, եթե ցանկանում եք ելքի մեջ ներառել փախուստի հաջորդականությունները; օրինակ echo -e «foo\nfoo»-ն կտպի foo-ն, այնուհետև գնալ նոր տող, այնուհետև նորից տպել foo: Օգտագործեք -n տարբերակը՝ կանխելու echo-ն ելքի վերջում նոր տող նիշ ավելացնելու համար, ինչպես դա անում է լռելյայն:
կատուտերմինալում տպելու է նշված ֆայլի բովանդակությունը: Հարմար է որպես խողովակի առաջին հրաման, օրինակ՝ cat foo.txt | բլա
տեսակավորելդուրս կբերի նշված ֆայլի բովանդակությունը հրամանի տող, այբուբենի կարգով. Բնականաբար, տեսակավորումը կարող է նաև մուտքագրել խողովակից: Մուտքագրեք man sort՝ տեսնելու հրամանների ընտրանքները, որոնք վերահսկում են տեսակավորման տարբերակները:
uniqվերցնում է արդեն տեսակավորված ֆայլ կամ տվյալների հոսք (խողովակի միջոցով) և հեռացնում կրկնօրինակ տողերը:
wcցույց է տալիս տողերի, բառերի և նիշերի քանակը նշված ֆայլում կամ մուտքագրման հոսքում (խողովակից): Մուտքագրեք man wc՝ սովորելու, թե ինչպես հարմարեցնել ծրագրի արդյունքը:
գլուխտպում է ֆայլի կամ հոսքի առաջին տասը տողերը: Օգտագործեք -n տարբերակը՝ նշելու, թե քանի տող պետք է ցուցադրվի:
պոչըտպում է ֆայլի կամ հոսքի վերջին տասը տողը: Օգտագործեք -n տարբերակը՝ նշելու, թե քանի տող պետք է ցուցադրվի:
tacնման կատու, բայց բոլոր տողերը տպում է հակառակ հերթականությամբ, այլ կերպ ասած՝ առաջինը տպվում է վերջին տողը։
ընդլայնելՓոխակերպում է մուտքային ներդիրի նիշերը բացատների: -t տարբերակը նշում է ներդիրի չափը:
չընդլայնվելՓոխակերպում է մուտքային տարածքները ներդիրի նիշերի: -t տարբերակը նշում է ներդիրի չափը:
կտրելօգտագործվում է մուտքային ֆայլից կամ հոսքից որոշակի նիշով առանձնացված դաշտեր հանելու համար: (փորձեք echo "abc def ghi jkl" | cut -d " " -f2,2 մոտավորապես)
Թիմ nlյուրաքանչյուր մուտքագրման տող ավելացնում է իր համարը: Հարմար է տպագրության համար։
պրֆայլը բաժանում է էջերի և համարակալում դրանք. սովորաբար օգտագործվում է տպագրության համար:
tr- խորհրդանիշ թարգմանության (փոխակերպման) գործիք; օգտագործվում է մուտքային հոսքի որոշակի նիշերը ելքային հոսքի նշված նիշերին քարտեզագրելու համար:
sed- հզոր թելի վրա հիմնված տեքստային խմբագիր: Դուք կարող եք ավելին իմանալ sed-ի մասին Funtoo կայքի հետևյալ ձեռնարկներից.
Եթե մտադիր եք մասնակցել LPI քննությանը, անպայման կարդացեք այս շարքի առաջին երկու հոդվածները:
ավք- հմուտ լեզու տող առ տող վերլուծելու և մուտքային հոսքի մշակման համար՝ ըստ սահմանված օրինաչափությունների: Awk-ի մասին ավելին իմանալու համար կարդացեք Fuuntoo կայքում տեղադրված ձեռնարկների հետևյալ շարքը.
odնախագծված է ներկայացնելու մուտքային հոսքը օկտալ, տասնվեցական և այլն: ձևաչափը։
պառակտել- այս հրամանը օգտագործվում է բաժանելու համար մեծ ֆայլերմի քանի փոքր, ավելի կառավարելի մասերի:
fmtօգտագործվում է տեքստի երկար տողերը «փաթաթելու» համար: Այսօր դա այնքան էլ օգտակար չէ, քանի որ այս հատկությունը ներկառուցված է մեծամասնության մեջ տեքստային խմբագիրներ, չնայած թիմը բավական լավն է՝ իմանալու համար:
մածուկվերցնում է երկու կամ ավելի ֆայլեր որպես մուտքագրում, միացնում տող առ տող և դուրս բերում արդյունքը: Կարող է օգտակար լինել տեքստի աղյուսակներ կամ սյունակներ ստեղծելու համար:
միանալ Paste-ի նման, այս օգտակար ծրագիրը թույլ է տալիս համատեղել երկու ֆայլ՝ օգտագործելով ընդհանուր դաշտը (լռելյայն, յուրաքանչյուր տողում առաջին դաշտը):
թիտպում է մուտքային փաստարկները ֆայլի և էկրանի վրա միաժամանակ: Սա օգտակար է, երբ ցանկանում եք ինչ-որ բանի համար գրանցամատյան ստեղծել, ինչպես նաև ցանկանում եք գործընթացը տեսնել էկրանին:
Փոթորիկը ավարտվեց: Վերահղում
Ինչպես > հրամանի տողում, կարող եք օգտագործել< для перенаправления файла, но уже на вход команде. Для многих команд, можно просто указать имя файла. К сожалению некоторые программы работают только со стандартным потоком ввода.Bash-ը և այլ պատյանները պաշտպանում են «herefile» հայեցակարգը: Սա թույլ է տալիս մուտքագրումը հրամանին տրվել որպես տողերի շարք, որին հաջորդում է հրամանը, որը ցույց է տալիս արժեքների մուտքագրման հաջորդականության ավարտը: Սա ցույց տալու ամենահեշտ ձևը օրինակով է.
$ տեսակավորել <
լոռամրգի
բանան
ՎԵՐՋ
խնձոր
բանան
լոռամրգի
Վերևի օրինակում մենք մուտքագրում ենք խնձոր, լոռամրգի և բանան բառերը, որին հաջորդում է «ՎԵՐՋ»՝ մուտքագրման վերջը նշելու համար: Տեսակավորման ծրագիրը այնուհետև վերադարձնում է մեր բառերը այբբենական կարգով:
Օգտագործելով «>>»
Դուք կարող եք ակնկալել, որ >> ինչ-որ չափով նման կլինի<<, но это не так. Она позволяет просто добавить вывод в файл, а не перезаписывать его каждый раз, как это делает >. Օրինակ:
$ echo Hi > myfile
$ արձագանքել այնտեղ. > myfile
$ cat myfile
այնտեղ։
Վա՜յ։ Մենք կորցրինք «Hi»-ով հատվածը։ Ահա թե ինչ նկատի ունեինք.
$ echo Hi > myfile
$ արձագանքել այնտեղ. >> myfile
$ cat myfile
Ողջու՜յն
այնտեղ։
Դա ավելի լավ է!
Շնորհակալություն Դմիտրի Մինսկի ([էլփոստը պաշտպանված է]) թարգմանության համար։
Հեղինակների մասին
Դենիել Ռոբինս
Դենիել Ռոբինս - Gentoo համայնքի հիմնադիր և ստեղծող օպերացիոն համակարգ Gentoo Linux. Դանիելը բնակվում է Նյու Մեքսիկոյում՝ կնոջ՝ Մերիի և երկու եռանդուն դուստրերի հետ: Նա նաև Funtoo-ի հիմնադիրն ու գործադիր տնօրենն է, ինչպես նաև բազմաթիվ տեխնիկական հոդվածներ է գրել IBM developerWorks-ի, Intel Developer Services-ի և C/C++ Users Journal-ի համար:Քրիս Հաուզեր
Քրիս Հաուզերը UNIX-ի փաստաբան է 1994 թվականից, երբ միացավ Թեյլորի համալսարանի (Ինդիանա, ԱՄՆ) վարչական թիմին, որտեղ նա բակալավրի կոչում ստացավ համակարգչային գիտության և մաթեմատիկայի ոլորտում: Այդ ժամանակվանից նա աշխատել է տարբեր ոլորտներում՝ ներառյալ վեբ հավելվածները, վիդեո խմբագրումը, UNIX դրայվերները և ծածկագրային անվտանգությունը: Ներկայումս աշխատում է Sentry Data Systems-ում: Քրիսը նաև իր ներդրումն է ունեցել բազմաթիվ անվճար նախագծերում, ինչպիսիք են Gentoo Linux-ը և Clojure-ը և համահեղինակել է The Joy of Clojure գիրքը:Արոն Գրիֆիս
Ահարոն Գրիֆիսն ապրում է Բոստոնում, որտեղ նա անցկացրել է վերջին տասնամյակը՝ աշխատելով Hewlett-Packard-ում այնպիսի նախագծերի վրա, ինչպիսիք են UNIX ցանցի վարորդները Tru64-ի համար, Linux-ի անվտանգության սերտիֆիկացում, Xen և KVM վիրտուալացում, իսկ վերջերս՝ HP ePrint հարթակը: Երբ նա չի ծրագրավորում, Ահարոնը սիրում է մտածել ծրագրավորման խնդիրների մասին՝ հեծանիվ վարելիս, չղջիկներով ձեռնածություն անելիս կամ Բոստոն Ռեդ Սոքս պրոֆեսիոնալ բեյսբոլի թիմին քաջալերելիս:Հարց 1. Բայց ինչու՞ ստացա 7, չպիտի՞ ստանամ: 6 «, հավատալով, որ նա համարում է խորհրդանիշը» տողի վերջ »?
Հարց 2. Ինչպե՞ս է աշխատում wc -m-ը:
Հարց 3. Երբ ես օգտագործում եմ wc -c (բայթերի քանակը հաշվելու համար), ես ունենում եմ նույն արդյունքը, ինչ wc -m , այնպես որ. որն է երկու տարբեր տարբերակների իմաստը? Նույն գործն են անում, չէ՞։ Եթե ոչ, ապա ո՞րն է տարբերությունը և ինչպե՞ս է աշխատում wc -c-ն:
Դուք պետք է ունենաք ընդամենը 6 նիշ: Փորձեք վազել
Cat - Ֆայլի անուն
Ձեր ֆայլում չտպող նիշերը տեսնելու համար: Դուք պետք է ինչ-որ լրացուցիչ բան ունենաք: Եթե ես ֆայլը դարձնեմ նույնը, ինչ քոնը, կարող եմ տեսնել
Տեղը դրե՞լ ես։ Սա կկազմի 7: ikk$ կամ միգուցե կունենա նոր տող.
որը նույնպես 7 է
Ինչպես ասում եք
հաշվում է կերպարներ և
հաշվում է բայթերը: Եթե ձեր բոլոր նիշերը ASCII նիշերի հավաքածուի մաս են կազմում, ապա յուրաքանչյուր նիշի համար կլինի միայն 1 բայթ, այնպես որ դուք կստանաք նույն թիվը երկու հրամաններից:
Փորձեք ոչ ASCII նիշերով ֆայլ.
$ echo ك > testfile $ wc -m testfile 2 testfile $ wc -c testfile 3 testfile
Այո! Հիմա ավելի շատ բայթ կա, քան նիշ:
wc -c-ի և wc -m-ի տարբերությունն այն է, որ մի քանի բայթ նիշերով տեղանքում (օրինակ՝ UTF8), առաջինը հաշվում է բայթերը, իսկ երկրորդը՝ նիշերը։ Դիտարկենք հետևյալ ֆայլը.
$ hexdump -C dummy.txt 00000000 78 79 cf 80 0a |xy...|
(նրանց համար, ովքեր չեն խոսում UTF8, դա «x», «y» և «π» տառերն են, ապա նոր տող): Սա հինգ բայթ է.
$ wc -c dummy.txt 5 dummy.txt
բայց միայն չորս նիշ.
$ wc -m dummy.txt 4 dummy.txt
$ locale UTF-8
Իմ ներկայիս միջավայրում նիշերի հավաքածուն UTF-8 է, ինչը նշանակում է, որ նիշերը կոդավորված են 1-ից 4 բայթ յուրաքանչյուր նիշի համար (չնայած քանի որ սկզբնական UTF-8 սահմանումը թույլ էր տալիս նիշերի կոդավորումը մինչև 0x7ffffff, գործիքների մեծ մասը ճանաչում էր UTF-8 բայթային հաջորդականությունը մինչև 6 բայթ երկարությամբ):
Այս նիշերի հավաքածուում Յունիկոդի բոլոր նիշերը հասանելի են և կոդավորված են որպես բայթ արժեք 65, իսկ 乕 որպես 3 բայթ հաջորդականություն՝ 228,185,149, և é որպես երկու բայթ հաջորդականություն՝ 195,169, օրինակ:
$ printf 乕 | wc -mc 1 3 $ printf a | wc -mc 1 1
$ արտահանում fr_FR.iso885915@euro $ locale charmap ISO-8859-15
Ես փոխել եմ իմ միջավայրը, որտեղ նիշերի հավաքածուն այժմ ISO-8859-15 է (այլ բաներ, ինչպիսիք են լեզուն, արժույթի նշանը, ամսաթվի ձևաչափը նույնպես փոխվել են, այս տարածաշրջանային պարամետրերի հավաքածուն կոչվում է լեզվական տարբերակը) Ես պետք է գործարկեմ նոր տերմինալի էմուլյատոր այս միջավայրում, որպեսզի այն հարմարեցնի իր նիշերի մատուցումը նոր լեզվին:
ISO-8859-15-ը մեկ բայթ նիշերի հավաքածու է, ինչը նշանակում է, որ այն ունի ընդամենը 256 նիշ (իրականում նույնիսկ դրանից պակաս): Այս նիշերի հավաքածուն օգտագործվում է արևմտաեվրոպական լեզուների համար, քանի որ այն ընդգրկում է նրա լեզուների մեծ մասը (և եվրոյի խորհրդանիշը):
Այն ունի 65 բայթ արժեքով նիշ, ինչպես UTF-8-ում կամ ASCII-ում, ունի նաև é նիշ (ինչպես սովորաբար օգտագործվում է ֆրանսերեն կամ իսպաներեն, օրինակ), բայց 233 բայթ արժեքով այն չունի նիշ:
Այս միջավայրում wc -c և wc -m միշտ նույն արդյունքը կտան:
Ubuntu-ում, ինչպես շատ ժամանակակիցներում Unix-ի նման համակարգեր, լռելյայն սովորաբար UTF-8 է, քանի որ դա միակ աջակցվող նիշերի հավաքածուն է (և կոդավորումը), որն ընդգրկում է Unicode-ի ողջ տիրույթը:
Կան այլ բազմաբայթ նիշերի կոդավորումներ, բայց դրանք այնքան էլ լավ չեն աջակցվում Ubuntu-ում, և դուք պետք է անցնեք օղակների միջով, որպեսզի կարողանաք ստեղծել դրանցով տեղայնացում, և եթե դա անեք, կտեսնեք, որ շատ բաներ ճիշտ չեն աշխատում: .
Այսպիսով, Ubuntu-ում նիշերի հավաքածուները կամ մեկ բայթ են կամ UTF-8:
Հիմա ևս մի քանի նշում.
UTF-8-ում ոչ բոլոր բայթերի հաջորդականություններն են կազմում վավեր նիշեր: Օրինակ, բոլոր UTF-8 նիշերը, որոնք ASCII չեն, ձևավորվում են բայթերով, որոնք բոլորն ունեն 8-րդ բիթ, բայց որտեղ միայն առաջինն ունի 7-րդ բիթ:
Եթե ունեք բայթերի հաջորդականություն 8-րդ բիթներով, որոնցից ոչ մեկը չունի 7-րդ բիթ, ապա սա չի կարող թարգմանվել որպես նիշ: Եվ սա այն դեպքում, երբ դուք խնդիրներ և անհամապատասխանություններ ունեք, քանի որ ծրագրային ապահովումչգիտի, թե ինչ անել նրանց հետ: Օրինակ:
$ printf «\200\200\200» | wc -mc 0 3 $ printf «\200\200\200» | grep -q . || արձագանք ոչ ոչ
wc-ն և grep-ը գտան կերպարը, բայց.
$ x=$"\200\200\200" bash -c "echo "$(#x)"" 3
bash-ը գտնում է 3: Երբ այն չի կարող ցուցադրել բայթերի հաջորդականությունը նիշի համար, այն հաշվում է յուրաքանչյուր բայթ նիշը:
Սա կարող է բարդանալ, քանի որ Յունիկոդն ունի կոդային կետեր, որոնք վավեր չեն որպես նիշեր, իսկ որոշները՝ վավերական են Ոչեն խորհրդանիշներ, և կախված գործիքից, դրանց UTF-8 կոդավորումը կարող է կամ չհամարվել որպես նիշ:
Մեկ այլ բան, որը պետք է հաշվի առնել, կերպարի և գրաֆեմայի միջև եղած տարբերությունն է և դրանց պատկերացման եղանակը:
$ printf «e\u301\u20dd\n» é⃝ $ printf «e\u301\u20dd» | wc -mc 3 6
Այնտեղ մենք ունենք 3 նիշի ծածկագիր, քանի որ 6 բայթը ցուցադրվում է որպես մեկ գրաֆեմ, քանի որ մենք ունենք 3 նիշ միասին (մեկ հիմնական նիշ, սուր շեշտի համադրություն և շրջապատող շրջանի համադրություն):
Ubuntu-ում հայտնաբերված wc-ի GNU իրականացումն ունի -L անջատիչ՝ մուտքագրման մեջ ամենալայն գծի ցուցադրման լայնությունը նշելու համար.
$ printf «e\u301\u20dd\n» | wc -L 1
Դուք նաև կգտնեք, որ որոշ կերպարներ վերցնում են 2 բջիջներըլայնության հաշվարկով, ինչպիսին մերն է վերևում.
$ արձագանք 乕 | wc -L 2
Եզրափակելով. ավելի վայրի բառով բայթը, նիշը և գրաֆիկը պարտադիր չէ, որ նույնը լինեն:
Linux-ում wc հրամանի մի քանի գործնական օրինակներ, ինչպես հաշվել տեքստային ֆայլի տողերի, բառերի և նաև նիշերի քանակը:
Ի՞նչ է wc հրամանը Linux-ում:
Ցուցադրվում է wc հրամանը վիճակագրական տեղեկատվությունֆայլի մասին, օրինակ՝ տողերի, բառերի, նիշերի քանակը։
Ընդհանուր տեղեկություններ. wc-ն նշանակում է բառերի հաշվարկ:
wc հրամանի շարահյուսություն.
Wc
wc հրամանն ունի հետևյալ պարամետրերը.
- -l: Տպում է միայն տողերի քանակը
- -w: Տպում է միայն բառերի քանակը
- -c: Տպում է միայն բայթերի քանակը
- -M: Տպում է նիշերի քանակը (տարբերվում է ոչ տեքստային ֆայլերի բայթերի քանակից)
- -L: Տպում է ֆայլի ամենաերկար տողի երկարությունը
- -files0-from=F. Ստացեք ֆայլերի անունները F ֆայլից (ֆայլերի անունները պետք է առանձնացված լինեն NULL)
Linux-ում wc հրամանի 5 գործնական օրինակներ
Այս օրինակում մենք պատրաստվում ենք օգտագործել alex.txt և andreyex.txt ֆայլերը: Դուք կարող եք բեռնել այս ֆայլերը՝ օգտագործելով այս հոդվածի օրինակներում տրված wc հրամանը:
Տեքստի նիշերի քանակի հաշվում առցանց՝ https://charactercount.org/ru, հարմար գործիքհաշվելով տեքստի նիշերի քանակը, դուք միշտ կիմանաք, թե քանի նիշ և բառ կա տեքստում, ինչպես նաև հնարավոր է օգտագործել ավտոմատ պահպանումը տեքստի հետ աշխատելիս։
Եթե դուք օգտագործում եք wc հրամանը միայն մուտքագրված ֆայլերի անուններով, առանց որևէ պարամետրի, այն ձեզ ցույց կտա տողերի, բառերի և բայթերի քանակը միաժամանակ:
Wc alex.txt 15 45 366 alex.txt
Վերոնշյալ ձևով.
- 15 - տողերի քանակը
- 45 - բառերի քանակը
- 366 - բայթերի քանակը
Այժմ, երբ դուք գիտեք wc հրամանի պարամետրերը, եկեք տեսնենք wc հրամանի որոշ օրինակներ:
1. Հաշվեք ֆայլի տողերի քանակը
Եթե պարզապես ցանկանում եք իմանալ տեքստային ֆայլի տողերի քանակը, կարող եք օգտագործել wc հրամանը «l» տարբերակով: Հիմնականում այն հաշվում է ֆայլի տողերի քանակը:
Wc -l alex.txt 20 alex.txt
2. Հաշվիր ֆայլի բառերի քանակը
Եթե պարզապես ցանկանում եք իմանալ տեքստային ֆայլի բառերի քանակը, կարող եք օգտագործել wc հրամանը «w» տարբերակով: Այն կցուցադրի բացատներով բառերի քանակը: