IlmHamroh
JavaScript Full-stack/1-qism. Kompyuter, fayllar va terminal22/40-dars16 daqiqa
Mundarija (32)

Fayl va matn qidirish: find, grep va ripgrep

Qisqacha: Terminalda ikki xil qidiruv bor. Fayl nomini find topadi: find . -name "*.js". Fayl ichidagi so'zni grep topadi: grep -rn "narx" . — qaysi faylda, nechanchi qatorda ekanini ko'rsatadi. Zamonaviy rg (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.
  • find bilan faylni nomi, kengaytmasi yoki turi bo'yicha topasiz.
  • grep -rn bilan butun loyihadan so'z topib, uning qator raqamini ko'rasiz.
  • rg (ripgrep) nega tezroq ekanini va .gitignore bilan 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:

text
./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:

bash
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.js

Bu 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:

text
dokon/
├── index.html
├── rasmlar/
│   ├── Banner.PNG
│   └── logo.png
└── src/
    ├── app.js
    ├── sozlama.js
    └── style.css

src/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.

bash
find . -name "logo.png"
text
./rasmlar/logo.png

Keling, bo'laklaymiz:

  • find — buyruq nomi ("top").
  • . — qayerdan boshlash. Yo'llar darsidan eslang: nuqta — joriy papka. find shu 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":

bash
find . -name "*.js"
text
./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:

bash
find . -name "*.png"
text
./rasmlar/logo.png

Banner.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"):

bash
find . -iname "*.png"
text
./rasmlar/Banner.PNG
./rasmlar/logo.png

3.4 Faqat fayllar yoki faqat papkalar: -type

Flag Nimani topadi
-type f Faqat fayllar (f — file)
-type d Faqat papkalar (d — directory, papka)
bash
find . -type d
text
.
./rasmlar
./src

Flaglarni birlashtirish mumkin. "src ichidagi, .css bilan tugaydigan fayllar":

bash
find src -type f -name "*.css"
text
src/style.css

Bu safar qidiruv . dan emas, src papkasidan boshlandi. Shuning uchun natija ./ siz, src/ bilan boshlanyapti.

Maslahat: find ning yana foydali flagi — -empty (bo'sh fayl va papkalar). find . -type f -empty loyihadagi bo'sh fayllarni topadi. Barcha flaglar ro'yxati: find --help yoki man 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.

bash
grep "narx" src/app.js
text
const 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:

bash
grep -n "narx" src/app.js
text
1: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 — .:

bash
grep -rn "narx" .
text
./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:

bash
grep -rn "todo" .
text
./src/sozlama.js:2:// todo: xatolarni tekshirish

-i (ignore case) qo'shsak — ikkalasi:

bash
grep -rni "todo" .
text
./src/app.js:2:// TODO: chegirma qo'shish
./src/sozlama.js:2:// todo: xatolarni tekshirish

Maslahat: "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:

bash
grep -rl "const" .
grep -c "narx" src/app.js
text
./src/app.js
./src/sozlama.js
2

Birinchi buyruq const yozilgan fayllarni sanab berdi. Ikkinchisi src/app.js da narx bor qatorlar sonini — 2.

Tekshirib ko'ring: grep -v "narx" src/app.js nima 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.png fayli qayerda?" va "Qaysi fayllarda logo.png deb 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.

bash
rg "narx"

Terminalda natija shunday ko'rinadi (fayl nomi alohida qatorda, rangli):

text
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:

  • -r shart emas — rg doim ichki papkalarni qidiradi.
  • -n shart emas — qator raqami o'zi chiqadi (terminalda).
  • Yashirin fayllar (nomi . bilan boshlanadigan) qidirilmaydi. Kerak bo'lsa — rg --hidden "narx".
  • Eng muhimi: .gitignore faylida 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:

text
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 .gitignore ni faqat Git bilan boshqariladigan loyihada hisobga oladi — ya'ni loyihada yashirin .git papkasi bo'lsa. Oddiy papkada (.git siz) u node_modules ni 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: grep ni baribir biling. U har qanday Linux serverda tayyor turadi, rg esa ko'pincha yo'q. Kundalik ishda — rg, notanish serverda — grep.

Tekshirib ko'ring: Loyihada .gitignore bor va unda node_modules/ yozilgan. grep -rn "narx" . va rg "narx" — qaysi biri node_modules ichidagi 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:

bash
grep -rn "^const" src
text
src/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.

bash
grep -rn "[0-9]" src
text
src/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 uchun grep "logo.png" nafaqat logo.png ni, balki logo-png yoki logoXpng ni ham topadi. Ko'pincha bu zarar qilmaydi. Aynan nuqtani qidirish kerak bo'lsa, oldiga \ qo'ying: "logo\.png".

Tekshirib ko'ring: grep -rn ";$" src qaysi 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:

bash
find . -name *.js
text
find: 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

bash
grep "narx" src
text
grep: 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

bash
grep "logo.png" .
text
grep: .: Is a directory

Bu 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:

text
File not found - *.js

Sababi: 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:

bash
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:

bash
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:

  • src papkasidagi barcha CSS fayllarni nomi bo'yicha topish: find src "*.css"
  • app.js ichida console so'zi bor qatorni, qator raqami bilan chiqarish: grep "console" src/app.js
  • Butun loyihadan API_URL ni qidirish: grep "API_URL" .
Yechim
bash
find src -name "*.css"
grep -n "console" src/app.js
grep -rn "API_URL" .
text
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:

  1. Loyihadagi barcha papkalarni ro'yxatlang.
  2. Nomi .png yoki .PNG bilan tugaydigan barcha fayllarni toping.
  3. Loyihadagi barcha "todo" eslatmalarini harf kattaligidan qat'i nazar toping.
  4. Ichida const so'zi bor fayllarning faqat nomlarini chiqaring.

Ishora: flaglar 3- va 4-bo'limlardagi jadvallarda.

Yechim
bash
find . -type d
find . -iname "*.png"
grep -rni "todo" .
grep -rl "const" .
  1. -type d — faqat papkalar.
  2. -iname — -name ning harf kattaligiga qaramaydigan varianti. -name "*.png" bo'lsa, Banner.PNG tushib qolardi.
  3. -r — ichki papkalar, -n — qator raqami, -i — TODO va todo ikkalasi.
  4. -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) src dagi qaysi qatorlar raqam bilan tugaydi? (; dan oldin emas, aynan qator oxirida.)
  • C) sozlama.js da API so'zi bo'lmagan qatorlar qaysilar?

Har biriga buyruq yozing va natijani oldindan taxmin qiling, keyin tekshiring.

Yechim

A) -empty va -type f birga:

bash
find . -type f -empty
text
./index.html
./rasmlar/Banner.PNG
./rasmlar/logo.png
./src/style.css

To'rtta bo'sh fayl — ularni touch bilan yaratgan edik, ichi bo'sh.

B) Qator oxiri — $, raqam — [0-9]. Ikkalasini qo'shamiz:

bash
grep -rn "[0-9]$" src

Hech 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:

bash
grep -v "API" src/sozlama.js
text
// todo: xatolarni tekshirish

9. 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 faqat grep bo'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 "find va grep farqi 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 .gitignore dagi 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.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
Fayl va matn qidirish: find, grep va ripgrep — IlmHamroh