Mundarija (32)
- Bu darsda
- 1. Nega bu kerak?
- 2. Mashq uchun loyiha tayyorlaymiz
- 3. Fayl nomini qidirish: find
- 3.1 Eng oddiy shakl
- 3.2 Glob bilan: barcha .js fayllar
- 3.3 Harf kattaligi: -name va -iname
- 3.4 Faqat fayllar yoki faqat papkalar: -type
- 4. Fayl ichidagi matnni qidirish: grep
- 4.1 Bitta fayl ichidan
- 4.2 Qator raqami: -n
- 4.3 Butun loyiha bo'ylab: -r
- 4.4 Harf kattaligi: -i
- 4.5 Yana to'rtta foydali flag
- 5. Zamonaviy vosita: ripgrep (rg)
- 5.1 grep qayerda qiynaladi?
- 5.2 rg nima qiladi
- 5.3 .gitignore nima?
- 5.4 rg ni o'rnatish
- 6. Qolip bo'yicha qidirish: regex'ga kirish
- 7. Ko'p uchraydigan xatolar
- 7.1 find da qo'shtirnoqni unutish
- 7.2 grep ga papka berish, -r ni unutish
- 7.3 grep bilan fayl nomini qidirish
- 7.4 PowerShell'da find yozish
- 7.5 node_modules natijalari ichida adashish
- 8. Mashqlar
- 1-mashq (oson): To'ldiring
- 2-mashq (o'rta): Qaysi buyruq?
- 3-mashq (qiyin): Tergovchi
- 9. Real ishda
- Xulosa
Fayl va matn qidirish: find, grep va ripgrep
Qisqacha: Terminalda ikki xil qidiruv bor. Fayl nomini
findtopadi:find . -name "*.js". Fayl ichidagi so'znigreptopadi:grep -rn "narx" .— qaysi faylda, nechanchi qatorda ekanini ko'rsatadi. Zamonaviyrg(ripgrep) xuddi shu ishni tezroq qiladi va keraksiz papkalarni o'zi chetlab o'tadi.
Bu darsda
- Fayl nomini qidirish bilan fayl ichidagi matnni qidirish farqini tushuntira olasiz.
findbilan faylni nomi, kengaytmasi yoki turi bo'yicha topasiz.grep -rnbilan butun loyihadan so'z topib, uning qator raqamini ko'rasiz.rg(ripgrep) nega tezroq ekanini va.gitignorebilan qanday ishlashini bilasiz.- Oddiy qoliplar (regex) bilan qidiruvni aniqroq qila olasiz:
^,$,.,[0-9].
Oldin bilishingiz kerak: Fayl va papkalar bilan ishlash, Yo'llar (path): absolyut va nisbiy, Buyruq anatomiyasi va yordam olish.
1. Nega bu kerak?
Oldingi darsda fayl yaratish, nusxalash va o'chirishni o'rgandik. Lekin avval faylni topish kerak-ku.
Tasavvur qiling: siz onlayn do'kon saytida ishlaysiz. Loyihada 2 000 ta fayl bor. Rahbar yozdi: "Narx 12 000 so'm deb yozilgan joyni topib, tuzatib qo'y". Qaysi faylda? Bilmaysiz.
Har bir faylni ochib o'qish — bir necha kunlik ish. Terminalda esa bitta buyruq bir soniyada javob beradi:
./src/app.js:1:const narx = 12000;"src/app.js faylining 1-qatorida". Qolgani — shu faylni ochib, tuzatish.
Qidiruv ikki xil bo'ladi. Buni boshidan farqlash muhim:
| Savol | Nima qidiriladi | Vosita |
|---|---|---|
"logo.png qayerda?" |
Fayl nomi | find |
"Qaysi faylda narx yozilgan?" |
Fayl ichidagi matn | grep, rg |
O'xshatish: kutubxonadasiz. find — katalog kartochkalari: kitobni nomi bo'yicha topadi. grep — har bir kitobni varaqlab, ichida kerakli so'z bor sahifani topadigan yordamchi.
Qidirishdan oldin o'zingizga bitta savol bering — qaysi vosita kerakligi shundan kelib chiqadi:
flowchart TD
S["Nimani qidiryapman?"] --> N["Fayl nomini"]
S --> M["Fayl ichidagi so'zni"]
N --> F["find . -name"]
M --> G["grep -rn yoki rg"]2. Mashq uchun loyiha tayyorlaymiz
Buyruqlarni o'qishning o'zi yetmaydi — sinab ko'rish kerak. Git Bash (Windows), WSL yoki macOS/Linux terminalini oching va quyidagini nusxalab ishga tushiring:
mkdir -p dokon/src dokon/rasmlar
cd dokon
touch index.html src/style.css
touch rasmlar/logo.png rasmlar/Banner.PNG
echo "const narx = 12000;" > src/app.js
echo "// TODO: chegirma qo'shish" >> src/app.js
echo "console.log(narx);" >> src/app.js
echo 'const API_URL = "https://example.com/api";' > src/sozlama.js
echo "// todo: xatolarni tekshirish" >> src/sozlama.jsBu yerda yangi belgi bor: > va >>. Ular echo chiqargan matnni ekranga emas, faylga yozadi. Ularni keyingi darsda to'liq o'rganamiz — hozir shunchaki nusxalang.
Natijada shunday tuzilma hosil bo'ldi:
dokon/
├── index.html
├── rasmlar/
│ ├── Banner.PNG
│ └── logo.png
└── src/
├── app.js
├── sozlama.js
└── style.csssrc/app.js ichida uch qator bor: narx, "TODO" eslatmasi va console.log qatori. .js — JavaScript fayllari, ularni kursda keyinroq yozamiz. Hozir ular biz uchun oddiy matnli fayl.
Diqqat: Bu darsdagi buyruqlar bash uchun. PowerShell'da
find— butunlay boshqa, Windows'ning eski dasturi. Uning farqini xatolar bo'limida ko'ramiz.
3. Fayl nomini qidirish: find
3.1 Eng oddiy shakl
find buyrug'i uch qismdan iborat: qayerdan qidirish, nima bo'yicha qidirish va nimani qidirish.
find . -name "logo.png"./rasmlar/logo.pngKeling, bo'laklaymiz:
find— buyruq nomi ("top")..— qayerdan boshlash. Yo'llar darsidan eslang: nuqta — joriy papka.findshu papkadan boshlab barcha ichki papkalarni aylanib chiqadi.-name— "nomi bo'yicha qidir" degan flag."logo.png"— qidirilayotgan nom.
Natijadagi ./rasmlar/logo.png — topilgan faylning yo'li. U . dan boshlanadi, chunki qidiruvni . dan boshladik.
3.2 Glob bilan: barcha .js fayllar
Aniq nomni bilmasangiz, oldingi darsdagi glob belgisi * yordam beradi. * — "istalgan belgilar":
find . -name "*.js"./src/app.js
./src/sozlama.js"Nomi istalgan narsa bo'lib, .js bilan tugaydigan fayllar". Natijalar tartibi sizda boshqacha bo'lishi mumkin — find fayllarni diskdagi tartibda chiqaradi.
Qo'shtirnoqqa e'tibor bering: "*.js". Bu majburiy odat. Nega — xatolar bo'limida ko'ramiz.
3.3 Harf kattaligi: -name va -iname
Loyihada logo.png va Banner.PNG bor. Barcha PNG rasmlarni qidiramiz:
find . -name "*.png"./rasmlar/logo.pngBanner.PNG topilmadi! Chunki -name katta va kichik harfni farqlaydi: .png va .PNG — har xil. Harf kattaligiga qaramaslik uchun -iname ishlating (i — ignore case, "kattalikka e'tibor berma"):
find . -iname "*.png"./rasmlar/Banner.PNG
./rasmlar/logo.png3.4 Faqat fayllar yoki faqat papkalar: -type
| Flag | Nimani topadi |
|---|---|
-type f |
Faqat fayllar (f — file) |
-type d |
Faqat papkalar (d — directory, papka) |
find . -type d.
./rasmlar
./srcFlaglarni birlashtirish mumkin. "src ichidagi, .css bilan tugaydigan fayllar":
find src -type f -name "*.css"src/style.cssBu safar qidiruv . dan emas, src papkasidan boshlandi. Shuning uchun natija ./ siz, src/ bilan boshlanyapti.
Maslahat:
findning yana foydali flagi —-empty(bo'sh fayl va papkalar).find . -type f -emptyloyihadagi bo'sh fayllarni topadi. Barcha flaglar ro'yxati:find --helpyokiman find.
Tekshirib ko'ring:
find rasmlar -name "*.PNG"nimani topadi?
Javob
Faqat rasmlar/Banner.PNG. Qidiruv rasmlar papkasidan boshlanadi. -name harf kattaligini farqlaydi, shuning uchun logo.png (kichik harfli .png) mos kelmaydi. Ikkalasini topish uchun -iname kerak.
4. Fayl ichidagi matnni qidirish: grep
4.1 Bitta fayl ichidan
grep — fayl ichidan berilgan so'z bor qatorlarni chiqaradi. Nomi uzun inglizcha iboradan qisqartirilgan, uni eslab qolish shart emas. Dasturchilar shunchaki "grep qilish" deyishadi.
grep "narx" src/app.jsconst narx = 12000;
console.log(narx);Tuzilishi: grep + nimani qidirish + qaysi faylda. Diqqat: find da avval joy, keyin nom edi. grep da aksincha — avval so'z, keyin fayl.
src/app.js da uch qator bor edi. grep faqat narx so'zi bor ikkitasini chiqardi. "TODO" qatori chiqmadi — unda narx yo'q.
So'z topilmasa, grep hech narsa chiqarmaydi va prompt qaytadi. Bu xato emas — "topilmadi" degani.
4.2 Qator raqami: -n
Qaysi qatorda ekanini bilish uchun -n (number — raqam) qo'shamiz:
grep -n "narx" src/app.js1:const narx = 12000;
3:console.log(narx);Endi har qator oldida raqam bor: 1-qator va 3-qator. Muharrirda aynan shu qatorga borasiz.
4.3 Butun loyiha bo'ylab: -r
Bitta fayl emas, butun loyihani qidirish uchun -r (recursive — ichki papkalarga ham kirish) qo'shamiz. Fayl o'rniga esa papka beramiz — .:
grep -rn "narx" ../src/app.js:1:const narx = 12000;
./src/app.js:3:console.log(narx);Natija qatori uch qismdan iborat, ikki nuqta bilan ajratilgan:
| Qism | Ma'nosi |
|---|---|
./src/app.js |
Qaysi fayl |
1 |
Nechanchi qator |
const narx = 12000; |
Qatorning o'zi |
grep -rn — dasturchilarning eng ko'p yozadigan qidiruv buyrug'i. Uni yod oling.
4.4 Harf kattaligi: -i
Loyihada ikkita eslatma bor: TODO (katta harfda) va todo (kichik harfda). Oddiy qidiruv faqat bittasini topadi:
grep -rn "todo" ../src/sozlama.js:2:// todo: xatolarni tekshirish-i (ignore case) qo'shsak — ikkalasi:
grep -rni "todo" ../src/app.js:2:// TODO: chegirma qo'shish
./src/sozlama.js:2:// todo: xatolarni tekshirishMaslahat: "TODO" — dasturchilar kodda qoldiradigan "keyin qilaman" eslatmasi.
grep -rni "todo" .— loyihadagi barcha tugallanmagan ishlar ro'yxati. Real ishda buni tez-tez qilasiz.
4.5 Yana to'rtta foydali flag
| Flag | Nima qiladi | Misol natija |
|---|---|---|
-l |
Faqat fayl nomlari (list) | ./src/app.js |
-c |
Nechta qator mos keldi (count) | 2 |
-v |
Teskari: so'z yo'q qatorlar | // TODO: ... |
-w |
Faqat butun so'z (word) | narx, lekin narxlar emas |
Sinab ko'ring:
grep -rl "const" .
grep -c "narx" src/app.js./src/app.js
./src/sozlama.js
2Birinchi buyruq const yozilgan fayllarni sanab berdi. Ikkinchisi src/app.js da narx bor qatorlar sonini — 2.
Tekshirib ko'ring:
grep -v "narx" src/app.jsnima chiqaradi?
Javob
// TODO: chegirma qo'shish. -v natijani teskari qiladi: narx so'zi bo'lmagan qatorlarni chiqaradi. Faylning uch qatoridan faqat shu bittasida narx yo'q.
Tekshirib ko'ring: "Loyihada
logo.pngfayli qayerda?" va "Qaysi fayllardalogo.pngdeb yozilgan (masalan, HTML ichida)?" — har biriga qaysi buyruq kerak?
Javob
Birinchisi — fayl nomi bo'yicha qidiruv: find . -name "logo.png". Ikkinchisi — fayllar ichidagi matn: grep -rn "logo.png" .. So'z bir xil, lekin savol har xil.
5. Zamonaviy vosita: ripgrep (rg)
5.1 grep qayerda qiynaladi?
Real JavaScript loyihasida node_modules degan papka bo'ladi. Unda loyihaga yuklab olingan tayyor kodlar turadi — ko'pincha yuz minglab fayl. Bu papkani npm darslarida ko'rasiz, hozir bilish shart emas.
grep -rn shu papkani ham qidiradi. Natija: qidiruv sekinlashadi, ekran esa sizga kerak bo'lmagan begona natijalar bilan to'ladi. Sizni faqat o'zingiz yozgan kod qiziqtiradi.
5.2 rg nima qiladi
ripgrep — grep ning zamonaviy muqobili, buyruq nomi rg. U Rust tilida yozilgan va juda tez. VS Code'dagi "Search" oynasi (Ctrl + Shift + F) ham ichida aynan ripgrep'ni ishlatadi.
rg "narx"Terminalda natija shunday ko'rinadi (fayl nomi alohida qatorda, rangli):
src/app.js
1:const narx = 12000;
3:console.log(narx);Windows'da yo'l src\app.js ko'rinishida chiqadi — ma'nosi bir xil.
grep -rn bilan farqi:
-rshart emas —rgdoim ichki papkalarni qidiradi.-nshart emas — qator raqami o'zi chiqadi (terminalda).- Yashirin fayllar (nomi
.bilan boshlanadigan) qidirilmaydi. Kerak bo'lsa —rg --hidden "narx". - Eng muhimi:
.gitignorefaylida yozilgan papkalar chetlab o'tiladi.
-i kabi flaglar grep dagidek ishlaydi: rg -i "todo".
5.3 .gitignore nima?
.gitignore — loyiha ildizidagi oddiy matnli fayl. Unda Git (loyiha tarixini saqlaydigan dastur, Git qismida to'liq o'rganamiz) e'tibor bermasligi kerak bo'lgan fayl va papkalar ro'yxati turadi. Deyarli har bir JavaScript loyihasida u shunday qatordan boshlanadi:
node_modules/rg bu ro'yxatni o'qiydi va "Git e'tibor bermaydigan narsa menga ham kerak emas" deb o'sha papkalarni o'tkazib yuboradi. Natija: qidiruv tez, ekranda faqat sizning kodingiz.
Diqqat:
rg.gitignoreni faqat Git bilan boshqariladigan loyihada hisobga oladi — ya'ni loyihada yashirin.gitpapkasi bo'lsa. Oddiy papkada (.gitsiz) unode_modulesni ham qidiradi.
5.4 rg ni o'rnatish
rg odatda tayyor kelmaydi. Paket menejerlari darsidagidek o'rnatiladi:
| Tizim | Buyruq |
|---|---|
| Windows | winget install BurntSushi.ripgrep.MSVC |
| macOS | brew install ripgrep |
| Ubuntu / WSL | sudo apt install ripgrep |
Paket nomi ripgrep, lekin buyruq nomi — rg. O'rnatgandan keyin terminalni yopib, qayta oching (PATH yangilanishi uchun) va rg --version bilan tekshiring.
Maslahat:
grepni baribir biling. U har qanday Linux serverda tayyor turadi,rgesa ko'pincha yo'q. Kundalik ishda —rg, notanish serverda —grep.
Tekshirib ko'ring: Loyihada
.gitignorebor va undanode_modules/yozilgan.grep -rn "narx" .varg "narx"— qaysi birinode_modulesichidagi fayllarni ham ko'rsatadi?
Javob
grep -rn. U .gitignore haqida hech narsa bilmaydi va hamma papkani qidiradi. rg esa Git loyihasida .gitignore ni o'qib, node_modules ni o'tkazib yuboradi.
6. Qolip bo'yicha qidirish: regex'ga kirish
Ba'zan aniq so'z emas, ko'rinish qidiriladi. Masalan: "const bilan boshlanadigan qatorlar" yoki "ichida istalgan raqam bor qatorlar".
Buning uchun regex (regular expression — muntazam ifoda) ishlatiladi. Regex — maxsus belgilar bilan yozilgan qidiruv qolipi. O'xshatish: krossvorddagi "5 harfli, T bilan boshlanadigan so'z" sharti. Aniq so'zni emas, qolipni aytasiz.
grep va rg birinchi argumentni doim regex sifatida o'qiydi. Hozircha to'rtta belgi yetarli:
| Belgi | Ma'nosi | Misol | Nimani topadi |
|---|---|---|---|
^ |
Qator boshi | ^const |
const bilan boshlanadigan qatorlar |
$ |
Qator oxiri | ;$ |
; bilan tugaydigan qatorlar |
. |
Istalgan bitta belgi | API.URL |
API_URL, API-URL |
[0-9] |
Istalgan bitta raqam | [0-9] |
Ichida raqam bor qatorlar |
Sinab ko'ramiz:
grep -rn "^const" srcsrc/app.js:1:const narx = 12000;
src/sozlama.js:1:const API_URL = "https://example.com/api";console.log(narx); qatorida ham const yo'q, // TODO qatorida ham yo'q — ular chiqmadi. ^ "shu so'z aynan qator boshida tursin" degani.
grep -rn "[0-9]" srcsrc/app.js:1:const narx = 12000;Faqat bitta qatorda raqam bor — 12000.
Regex'ning o'zi katta mavzu. JavaScript'da uni RegExp darslarida to'liq o'rganamiz. Hozir bu to'rt belgini bilish kifoya.
Diqqat: Regex'da
.— "istalgan belgi". Shuning uchungrep "logo.png"nafaqatlogo.pngni, balkilogo-pngyokilogoXpngni ham topadi. Ko'pincha bu zarar qilmaydi. Aynan nuqtani qidirish kerak bo'lsa, oldiga\qo'ying:"logo\.png".
Tekshirib ko'ring:
grep -rn ";$" srcqaysi qatorlarni topadi?
Javob
; bilan tugaydigan qatorlarni: const narx = 12000;, console.log(narx); va const API_URL = ...;. // TODO va // todo qatorlari ; bilan tugamaydi, shuning uchun chiqmaydi.
7. Ko'p uchraydigan xatolar
7.1 find da qo'shtirnoqni unutish
Joriy papkada ikkita .js fayl bor deylik (a.js va b.js). Siz yozdingiz:
find . -name *.jsfind: paths must precede expression: `b.js'
find: possible unquoted pattern after predicate `-name'?Tarjimasi: "Yo'llar ifodadan oldin kelishi kerak: b.js". Ikkinchi qator esa sababini aytadi: "-name dan keyin qo'shtirnoqsiz qolip bo'lishi mumkin".
Nega aynan b.js? find ishga tushishidan oldin shell *.js ni joriy papkadagi fayl nomlari bilan almashtirdi. Natijada find ga -name a.js b.js yetib bordi. -name bitta nom kutadi, ortiqcha b.js ni esa tushunmadi. Joriy papkada .js fayl bo'lmasa, xato chiqmaydi — shuning uchun bu xato "goh chiqib, goh chiqmaydi".
Tuzatish: qolipni doim qo'shtirnoqqa oling: find . -name "*.js". Qo'shtirnoq shell'ga "yulduzchaga tegma, find ning o'ziga ber" deydi.
7.2 grep ga papka berish, -r ni unutish
grep "narx" srcgrep: src: Is a directory"src — papka". grep papkaga kirib qidirmaydi, agar unga -r aytilmagan bo'lsa. Tuzatish: grep -r "narx" src.
7.3 grep bilan fayl nomini qidirish
grep "logo.png" .grep: .: Is a directoryBu yerda ikki xato bor. Birinchisi — -r yo'q. Ikkinchisi muhimroq: -r qo'shsangiz ham, grep fayl nomini emas, fayllar ichini qidiradi. logo.png fayli qayerda ekanini bilish uchun find . -name "logo.png" kerak.
7.4 PowerShell'da find yozish
PowerShell'da find . -name "*.js" yozsangiz, shunga o'xshash g'alati xato chiqadi:
File not found - *.jsSababi: Windows'da C:\Windows\System32\find.exe degan boshqa, eski dastur bor. U fayl ichidan matn qidiradi va -name ni tushunmaydi. PowerShell aynan o'shani ishga tushirdi.
Tuzatish: bash buyruqlarini Git Bash yoki WSL'da yozing. PowerShell'ning o'z qidiruv buyruqlari ham bor — ularni PowerShell darsida ko'ramiz.
7.5 node_modules natijalari ichida adashish
grep -rn "useState" . yozdingiz va ekranga 3 000 qator chiqdi — deyarli hammasi node_modules dan. Tuzatish: rg ishlating. Yoki grep ga papkani chetlab o'tishni ayting:
grep -rn "narx" . --exclude-dir=node_modules--exclude-dir — "shu nomli papkaga kirma". find da ham xuddi shu muammo bor: find . -name "*.js" node_modules ichidagi minglab .js ni ham chiqaradi. U yerda -not -path ("yo'li shunga o'xshamasin") yordam beradi:
find . -name "*.js" -not -path "*/node_modules/*"*/node_modules/* — "yo'lining istalgan joyida /node_modules/ bor" degan glob. Qo'shtirnoq bu yerda ham majburiy.
8. Mashqlar
Mashqlarni 2-bo'limda yaratgan dokon papkasi ichida bajaring.
1-mashq (oson): To'ldiring
Bo'sh joylarni to'ldiring:
srcpapkasidagi barcha CSS fayllarni nomi bo'yicha topish:find src"*.css"app.jsichidaconsoleso'zi bor qatorni, qator raqami bilan chiqarish:grep"console" src/app.js- Butun loyihadan
API_URLni qidirish:grep"API_URL" .
Yechim
find src -name "*.css"
grep -n "console" src/app.js
grep -rn "API_URL" .src/style.css
3:console.log(narx);
./src/sozlama.js:1:const API_URL = "https://example.com/api";Birinchisida qolip qo'shtirnoqda — shell * ni o'zi ochib yubormasligi uchun. Ikkinchisida bitta fayl, shuning uchun -r kerak emas. Uchinchisida butun loyiha — -r va -n birga.
2-mashq (o'rta): Qaysi buyruq?
Har bir vazifa uchun buyruq yozing:
- Loyihadagi barcha papkalarni ro'yxatlang.
- Nomi
.pngyoki.PNGbilan tugaydigan barcha fayllarni toping. - Loyihadagi barcha "todo" eslatmalarini harf kattaligidan qat'i nazar toping.
- Ichida
constso'zi bor fayllarning faqat nomlarini chiqaring.
Ishora: flaglar 3- va 4-bo'limlardagi jadvallarda.
Yechim
find . -type d
find . -iname "*.png"
grep -rni "todo" .
grep -rl "const" .-type d— faqat papkalar.-iname—-namening harf kattaligiga qaramaydigan varianti.-name "*.png"bo'lsa,Banner.PNGtushib qolardi.-r— ichki papkalar,-n— qator raqami,-i—TODOvatodoikkalasi.-l— qatorlarni emas, faqat fayl nomlarini chiqaradi.
3-mashq (qiyin): Tergovchi
Malika loyihada ishlayapti. U bilishi kerak:
- A) Loyihada nechta bo'sh fayl bor?
- B)
srcdagi qaysi qatorlar raqam bilan tugaydi? (;dan oldin emas, aynan qator oxirida.) - C)
sozlama.jsdaAPIso'zi bo'lmagan qatorlar qaysilar?
Har biriga buyruq yozing va natijani oldindan taxmin qiling, keyin tekshiring.
Yechim
A) -empty va -type f birga:
find . -type f -empty./index.html
./rasmlar/Banner.PNG
./rasmlar/logo.png
./src/style.cssTo'rtta bo'sh fayl — ularni touch bilan yaratgan edik, ichi bo'sh.
B) Qator oxiri — $, raqam — [0-9]. Ikkalasini qo'shamiz:
grep -rn "[0-9]$" srcHech narsa chiqmaydi. 12000 dan keyin ; turibdi, shuning uchun qator raqam bilan emas, ; bilan tugaydi. Bo'sh natija ham javob — "bunday qator yo'q".
C) -v — teskari qidiruv:
grep -v "API" src/sozlama.js// todo: xatolarni tekshirish9. Real ishda
- Notanish loyihaga kirish. Yangi ishga kelgan dasturchining birinchi kunlari "bu funksiya qayerda ishlatilgan?" savoli bilan o'tadi.
rg "funksiyaNomi"— bir soniyada javob. - Xatoni kuzatish. Saytda "Buyurtma topilmadi" degan xato chiqyapti. Shu matnni
rg "Buyurtma topilmadi"bilan qidirasiz — xato chiqaradigan kod qatori topiladi. - Serverda loglar. Serverdagi jurnal (log) fayllaridan xatolarni ajratish:
grep -i "error" server.log. Serverda ko'pincha faqatgrepbo'ladi. - Muharrir ichida. VS Code'dagi Ctrl + Shift + F — shu darsdagi ripgrep. Uning "regex" tugmasi (
.*belgisi) aynan 6-bo'limdagi qoliplarni yoqadi. - Intervyu. "Loyihadagi barcha TODO'larni qanday topasiz?" yoki "
findvagrepfarqi nima?" — boshlang'ich darajada so'raladi.
Xulosa
- Fayl nomi —
find . -name "*.js"; fayl ichidagi matn —grep -rn "so'z" .. find:-iname— harf kattaligisiz,-type f/-type d— faqat fayl yoki papka.grep:-r— ichki papkalar,-n— qator raqami,-i— harf kattaligisiz,-l,-c,-v,-w.rg— tezroq; Git loyihasida.gitignoredagi papkalarni (node_modules) o'zi o'tkazib yuboradi.- Regex belgilari:
^— qator boshi,$— oxiri,.— istalgan belgi,[0-9]— raqam. - Qolipni doim qo'shtirnoqqa oling:
"*.js".
Keyingi dars: Oqimlar, pipe va yo'naltirish — buyruq natijasini faylga yozish (>) va bir buyruqni ikkinchisiga ulash (|) orqali kichik vositalardan kuchli "konveyer" yasashni o'rganamiz.
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!