Сандыктын буйруктары менен Scripts жазуу керек

Буйруктар, синтаксистик жана мисалдар

шыргыйларды сандыктын эки команда өзгөчө материалдар кайра иштетүү же талдоо текст үчүн күчтүү бир ыкмасы, маалымат базасы линиялары боюнча уюштурулган (катар) жана колонналар.

Simple сандыктын буйрук качканга болот буйрук сабында . More татаал милдеттери бир делосуна сандыктын программаларды (деп аталган сандыктын тексттерин) деп жазылышы керек.

бир сандыктын буйругунун негизги формат мындай:

сандыктын "үлгү {иш} 'киргизүү-билэ> чыгаруу-билэ

Бул: киргизүү берилген ар бир сапты алып; сап үлгү сызыкка иш-аракеттерди колдонуу жана чыгыш-делосуна натыйжасында жазып бар болсо. узор кереги жок болсо, иш-аракет ар бир сапта колдонулат. Мисалы:

сандыктын '{5 $ басып}' table1.txt> output1.txt

Бул билдирүү ар бир сызыктын 5-тилкеде элементин алып жана чыгаруу билэ "output.txt" бир сап катары жазган. СБ '$ 4' экинчи тилкеде билдирет. Ошо сыяктуу эле, силер биринчи, экинчи, үчүнчү мамыча, 1, $ 2, $ 3, ж.б. демейки колонкалар боштук же кошумча барактардан (ушунчалык ак мейкиндик деп аталат) менен бөлүнгөн божомолдуу By $ менен кире аласыз. Ошондуктан, киргизүү билэ "table1.txt" Бул саптарды бар болсо:

1, Джастин Тимберлейк, аты 545, баасы $ 7.30 2, Ума Турман, аты 723, баасы $ 7.90 3, Мик Жаггер аты 610, баасы $ 7,90 4, Lady Gaga, аты 118, баасы $ 7.30 5, Johnny Cash, аты 482, баасы $ 6.50 6, Кенеш тобу, аты 335, баасы $ 7.30 7, Джон Леннон, аты 271, баасы $ 7.90 8, Майкл Джексон, аты 373, баасы $ 5.50

Анан буйрук чыгаруу File "output1.txt" төмөнкү саптарды жазган:

545, 723, 610, 118, 482, 335, 271, 373,

бардык мамычаларды бөлүп сепаратор, мисалы, үтүр сыяктуу боштук же кошумча барактардан, башка бир нерсе болсо, шыргыйларды сандыктын эки билдирүүсүндө белгилей алат төмөнкүдөй:

сандыктын -F, '{3 $ басып}' table1.txt> output1.txt

Бул рубрика үтүр менен ажыратылууга тийиш деп эсептелет, эгерде ар бир саптан-жылдын 3-колонналардын элементин тандап алат. Ошондуктан чыгаруу, бул учурда, боло турган:

Статус 545 Статус 723 Статус 610 Статус 118 Статус 482 Статус 335 Статус 271 Статус 373

бөйрөктүү кашаанын ичинде арыздардын тизмеси ( '{', '}') бир бөлүгү деп аталат. Эгер блок алдында шарттуу туюнтма берсе, блок ичинде отчет шарт туура болгондо гана ишке ашырылат.

сандыктын '$ 7 == "\ $ 7.30" {3 $ басып}' table1.txt

Бул учурда, абалы менен 7-тилкеде боюнча элемент бирдей экенин түшүндүрөт $ 7 == "\ $ 7.30" болуп саналат, $ 7.30. Доллар белгиси алдында слэш өзгөрмө аты катары $ 7 маанисинде системасын алдын алуу жана анын ордуна түзмө-түз доллар белгиси үчүн колдонулат.

Демек, бул сандыктын билдирүү басып чыккан ар бир сызыктын 3-тилкеде боюнча элементи "$ 7.30" колонна 7.

Ошондой эле колдоно аласыз туруктуу сөз айкаштары шарт катары. Мисалы:

сандыктын "/ 30 / {$ 3 басып} 'table1.txt

эки бөлчөк сызыгы ( "/") ортосунда сап туруктуу сөз айкашы болуп саналат. Бул учурда, бул жөн гана сап "30." Бул сап сап "30", деген сап жайгаштырылат, анын 3-тилкеде боюнча элементин системасы басылмалары бар болсо билдирет. Жогорудагы мисалда чыгаруу болот:

Тимберлейк, Gaga, Пресли,

стол элементтер саны болсо сандыктын ушул мисал сыяктуу, алар боюнча эсептөөлөр чуркай алат:

сандыктын '{басып чыгаруу ($ 2 * 3 $) + $ 7}'

Учурдагы саптын элементтерди алуу өзгөрмөлөрдөн тышкары ($ 1, $ 2, ж.б.) өзгөрүлмө $ 0 толук сап камтыйт (сызык) бар, жана талааларды саны кармап өзгөрүлмө Nf.

Ошондой эле ушул мисал сыяктуу жаңы мүнөздөмө берет:

сандыктын '{суммасы = 0; үчүн (Col = 1; <= NF; Кол ++) суммасы + = $ Col; басып чыгаруу суммасы; } '

Бул эсептесин жана ар бир катар бардык элементтеринин суммасын басып чыгара алат.

Сандыктын сөздөр көп менен бирге жатышат Бирок буйрук .