Ipakita ang Mga Linya Bago at Pagkatapos ng Pagtutugma sa pamamagitan ng Grep

Show Lines Before After Match Via Grep



Malawakang ginamit ang Grep sa mga system ng Linux kapag nagtatrabaho sa ilang mga file, naghahanap ng ilang tukoy na pattern, at marami pa. Sa oras na ito, gumagamit kami ng utos na grep upang ipakita ang mga linya bago at pagkatapos ng katugmang keyword na ginamit sa ilang partikular na file. Para sa hangaring ito, gagamitin namin ang -A, -B at, -C flag sa buong gabay ng aming tutorial. Kaya, kailangan mong isagawa ang bawat hakbang para sa mas mahusay na pag-unawa. Tiyaking mayroon kang naka-install na Ubuntu 20.04 Linux system.

Una, kailangan mong buksan ang iyong Linux command-line terminal upang magsimulang magtrabaho sa grep. Kasalukuyan kang nasa direktoryo ng Home ng iyong system ng Ubuntu pagkatapos na mabuksan ang command-line terminal. Kaya, subukang ilista ang lahat ng mga file at folder sa direktoryo ng bahay ng iyong system ng Linux gamit ang utos ng ls sa ibaba, at makukuha mo ang lahat. Maaari mong makita, mayroon kaming ilang mga file ng teksto at ilang mga folder na nakalista dito.







ls



Halimbawa 01: Paggamit ng '-A' at '-B'

Mula sa ipinakita sa itaas na mga file ng teksto, titingnan namin ang ilan sa mga ito at subukang ilapat ang utos ng grep sa kanila. Buksan muna natin ang file ng teksto na isa.txt gamit ang sikat na utos ng pusa sa ilalim:



$pusaisa.txt





Una naming makikita ang ilang mga tiyak na pagtutugma ng mga salita sa file na ito ng teksto gamit ang utos na grep tulad ng nasa ibaba. Hinahanap namin ang salitang kami sa text file na one.txt gamit ang pagtuturo ng grep. Ipinapakita ng output ang dalawang linya mula sa text file na mayroon tayo sa kanila.

$mahigpit na pagkakahawakkaming isa.txt



Kaya, sa halimbawang ito, ipapakita namin ang mga linya bago at pagkatapos ng tiyak na pagtutugma ng salita sa ilang mga file ng teksto. Kaya't gamit ang parehong file ng teksto na isa.txt na tugma kami sa salitang namin habang ipinapakita ang 3 mga linya bago ito sa ibaba. Ang watawat -B ay nangangahulugang Bago. Ang output ay nagpapakita lamang ng 2 mga linya bago ang tiyak na linya ng salita dahil ang file ay walang mas maraming mga linya bago ang linya ng isang tukoy na salita. Ipinapakita rin nito ang mga linya na mayroon ang tukoy na salita na naroroon sa kanila.

$mahigpit na pagkakahawak–B3kaming isa.txt

Gumamit tayo ng parehong keyword na mula sa file na ito upang ipakita ang 3 mga linya pagkatapos ng linya na may salitang tayo. Ang watawat -Ang nagtatanghal Pagkatapos. Ang output ay nagpapakita muli lamang ng 2 mga linya dahil wala itong maraming mga linya sa file.

$mahigpit na pagkakahawak-TO3kaming isa.txt

Kaya, gumamit tayo ng isang bagong keyword upang maitugma at ipakita ang mga linya o mga hilera bago at pagkatapos ng linya kung saan ito namamalagi. Kaya ginamit namin ang salitang maaari upang maitugma. Ang mga numero ng linya ay pareho sa kasong ito. Ang 3 mga linya pagkatapos ng katugmang salita ay maaaring ipakita sa ibaba gamit ang grep command.

$mahigpit na pagkakahawak-TO3maaari isa.txt

Maaari mong makita ang mga palabas na output bago ang mga linya ng isang katugmang salita gamit ang keyword na maaari. Sa kaibahan, nagpapakita lamang ito ng dalawang linya bago ang linya ng katugmang salita sapagkat wala nang mga linya bago ito.

$mahigpit na pagkakahawak–B3maaari isa.txt

Halimbawa 02: Paggamit ng '-A' at '-B'

Kumuha tayo ng isa pang file ng teksto, two.txt, mula sa direktoryo ng bahay at ipakita ang mga nilalaman nito gamit ang utos ng pusa sa ibaba.

$pusadalawa.txt

Ipakita natin ang 5 mga linya bago ang salitang Karamihan mula sa file na two.txt gamit ang grep command. Nagpapakita ang output ng 5 linya bago maglaman ang linya ng isang tukoy na salita.

$mahigpit na pagkakahawak–B5Karamihan sa dalawa.txt

Ipinapakita ng utos ng grep ang 5 mga linya pagkatapos ng salitang Karamihan mula sa text file na dalawang.txt ay ibinigay sa ibaba.

$mahigpit na pagkakahawak-TO5Karamihan sa dalawa.txt

Baguhin natin ang keyword na hahanapin. Gagamitin namin bilang isang keyword na maitutugma sa oras na ito. Ipakita ang 2 linya bago ang salita ng mula sa text file na dalawa. Ang txt ay maaaring gawin sa pamamagitan ng paggamit ng utos sa ibaba ng grep. Ipinapakita ng output ang dalawang linya para sa keyword ng dahil dumarating ito nang dalawang beses sa file. Sa gayon ang output ay naglalaman ng higit sa 2 mga linya.

$mahigpit na pagkakahawak–B2ng dalawa.txt

Ang pagpapakita ngayon ng 2 linya ng file na two.txt pagkatapos ng linya na naglalaman ng keyword ng ay maaaring magawa gamit ang utos sa ibaba. Ang output ay nagpapakita muli ng higit sa 2 mga linya.

$mahigpit na pagkakahawak-TO2ng dalawa.txt

Halimbawa 03: Paggamit ng '-C'

Isa pang watawat, -C ay ginamit upang ipakita ang mga linya bago at pagkatapos ng naitugmang salita. Ipakita natin ang mga nilalaman ng file na one.txt gamit ang cat command.

$pusaisa.txt

Pinipili namin ang lipunan bilang isang keyword na maitutugma. Ang utos sa ibaba grep ay ipapakita ang 2 linya bago at 2 linya pagkatapos ng linya na naglalaman ng salitang lipunan dito. Ang output ay nagpapakita ng isang linya bago ang tiyak na linya ng salita at 2 linya pagkatapos nito.

$mahigpit na pagkakahawak–C2lipunan isa.txt

Tingnan natin ang mga nilalaman ng file na two.txt gamit ang nasa ibaba na utos ng pusa.

$pusadalawa.txt

Sa ilustrasyong ito, gumagamit kami ng mga tula bilang isang keyword upang tumugma. Kaya, ipatupad ang utos sa ibaba para dito. Ipinapakita ng output ang dalawang linya bago at dalawang linya pagkatapos ng naitugmang salita.

$mahigpit na pagkakahawak–C2tula dalawa.txt

Gumamit tayo ng isa pang keyword mula sa file na two.txt upang maitugma. Tinatanggal namin ang kalikasan bilang isang keyword sa oras na ito. Kaya, subukan ang utos sa ibaba habang ginagamit ang -C bilang isang watawat na nagkakaroon ng keyword na likas mula sa file na two.txt. Sa oras na ito, ang output ay may higit sa dalawang mga linya sa output. Habang naglalaman ang file ng salitang kalikasan nang higit sa isang beses, iyon ang dahilan sa likod nito. Ang katangiang keyword, na nauuna, ay may dalawang linya bago at dalawang linya pagkatapos nito. Habang ang pangalawa ay tumugma sa parehong keyword, ang likas na katangian ay may dalawang linya bago ito, ngunit walang mga linya pagkatapos nito sapagkat ito ay nasa huling linya ng file.

$mahigpit na pagkakahawak–C2tula dalawa.txt

Konklusyon

Matagumpay kami sa pagpapakita ng mga linya bago at pagkatapos ng tiyak na salita habang ginagamit ang pagtuturo ng grep.