วิธีใช้คำสั่ง Grep ใน Linux

ทำความเข้าใจคำสั่ง grep พร้อมตัวอย่างที่ใช้งานได้จริงเพื่อกรองและแสดงเนื้อหาไฟล์อย่างง่ายดาย

GREPย่อมาจาก 'Global Regular Expression Print' เป็นยูทิลิตี้บรรทัดคำสั่งที่มีประโยชน์ซึ่งจัดเตรียมโดย Linux เพื่อค้นหาบรรทัดข้อความที่ตรงกับรูปแบบที่ผู้ใช้ให้มา

grepรับอินพุตจากผู้ใช้ในรูปแบบของสตริงหรือคำที่ผู้ใช้ต้องการค้นหาในไฟล์ใดไฟล์หนึ่ง คำสั่งจะตรวจสอบไฟล์ที่ระบุโดยผู้ใช้สำหรับรูปแบบนี้ จากนั้นส่งคืนบรรทัดที่ตรงกับรูปแบบที่ให้ไว้

มันทำงานได้ดีมากโดยการกรองเนื้อหาของไฟล์ทำให้งานของเราง่ายขึ้นในการค้นหาเนื้อหาเฉพาะในไฟล์เดียวหรือหลายไฟล์พร้อมกัน

ในบทความนี้ ให้เราตรวจสอบการทำงานของgrepคำสั่งพร้อมตัวอย่างการใช้งานจริงโดยละเอียด

ตัวเลือกที่ใช้ได้กับgrepคำสั่ง

นี่คือตัวเลือกพื้นฐานบางส่วนที่คุณจะใช้บ่อยๆ กับgrepคำสั่ง

ตัวเลือก คำอธิบาย
-i สำหรับการค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
-r หากต้องการค้นหาไฟล์ทั้งหมดในไดเร็กทอรีที่ระบุและไดเร็กทอรีย่อยซ้ำๆ
-c เพื่อแสดงจำนวนครั้งที่สตริงปรากฏขึ้น
-v เพื่อแสดงเส้นที่ไม่ตรงกัน
-w กรองคำเฉพาะที่ใช้แยกกัน

การใช้grepคำสั่ง

grepคำสั่งมักใช้กับ|ยูทิลิตี้ไพพ์ ( ) สามารถใช้กับเชลล์ไพพ์ได้เมื่อคุณต้องการใช้กับคำสั่ง Linux อื่นๆ แม้ว่าgrepจะใช้แยกกันได้โดยไม่ต้องใช้|ยูทิลิตี้ไพพ์ ( )

ให้เราดูไวยากรณ์พื้นฐานบางอย่างของgrepคำสั่งที่มีและไม่มียูทิลิตี้ไพพ์

อันดับแรก ให้ฉันแสดงไฟล์ข้อความตัวอย่างที่ฉันจะแสดงให้คุณเห็นgrepก่อน

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.



use of a bullock cart is a common sight in the village for the agrarian chores.

This is the end of the sample file.

grepใช้กับท่อ ( | ) ยูทิลิตี้

grepคำสั่งสามารถนำไปใช้กับคำสั่ง Linux อื่น ๆ โดยใช้เชลล์ไพพ์ เช่นเดียวกับการใช้catคำสั่งเพื่อแสดงเนื้อหาของไฟล์ แต่ในขณะเดียวกันก็ทำการไพพ์เอาต์พุตโดยใช้grepคำสั่งเพื่อแสดงเฉพาะเนื้อหาที่คุณต้องการดู สิ่งนี้จะชัดเจนยิ่งขึ้นเมื่อเราทำตามตัวอย่าง

ไวยากรณ์ :

[command] | grep [string]

ตัวอย่าง :

cat sample.txt | grep legislature

ที่นี่ ฉันใช้catคำสั่งเพื่อแสดงบางบรรทัดจากไฟล์ 'sample.txt' เฉพาะบรรทัดเหล่านั้นเท่านั้นที่จะแสดงซึ่งมีคำว่า 'สภานิติบัญญัติ' อยู่ในนั้นและไม่ต้องสนใจบรรทัดที่เหลือ

เอาท์พุต :

[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$

grepใช้โดยไม่มีท่อ ( | ) ยูทิลิตี้

grepสามารถใช้เป็นคำสั่งเดี่ยวได้โดยตรงโดยไม่ต้องใช้ | ยูทิลิตี้ไพพ์ ( )

ไวยากรณ์ :

grep [string_to_be_searched] [filename]

ตัวอย่าง :

grep India sample.txt

เอาท์พุต :

India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource

ดังนั้นฉันจึงใช้grepคำสั่งโดยตรงเพื่อกรองบรรทัดที่มีสตริง 'อินเดีย' จากไฟล์ข้อความ 'sample.txt'

การค้นหาแบบตรงตามตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยใช้grepคำสั่ง

ลินุกซ์จะระมัดระวังอย่างมากเกี่ยวกับความละเอียดอ่อนของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่อเราสั่งงานบนเทอร์มินัล สิ่งนี้ต้องการให้ผู้ใช้ระมัดระวังเกี่ยวกับกรณีของสตริงที่ใส่ลงในคำสั่ง

ให้เราดูสิ่งนี้ผ่านตัวอย่าง

grep peace sample.txt

ในกรณีนี้ เราจะไม่ได้รับผลลัพธ์เนื่องจากไม่มีคำว่า 'ความสงบ' ในไฟล์ตัวอย่าง เรามีคำว่า 'สันติภาพ' ด้วยตัวพิมพ์ใหญ่ 'พี' คำนั้นเหมือนกันแต่เมื่อเราใช้grepคำสั่งโดยไม่มีตัวเลือกใดๆ คำสั่งจะค้นหาคำที่ตรงกันในไฟล์โดยไม่คำนึงถึงการเปลี่ยนแปลงใด ๆ ในตัวพิมพ์ของตัวอักษร

เพื่อหลีกเลี่ยงความกำกวมนี้ คุณสามารถใช้-iตัวเลือกที่บอกgrepคำสั่งอย่างแท้จริงว่า"ลืมกรณีที่ฉันได้ใส่สตริงไว้ และเพียงแค่ค้นหารูปแบบที่ตรงกันทั้งหมดในไฟล์"

ไวยากรณ์:

grep -i [string] [filename]

ตัวอย่าง :

grep -i peace sample.txt

เอาท์พุต :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.

บรรทัดที่ตรงกันทั้งหมดจะแสดงโดยไม่คำนึงถึงกรณีที่เป็นสตริงที่ตรงกัน

ค้นหาแบบเรียกซ้ำโดยใช้grepคำสั่ง

-rตัวเลือกที่จะค้นหาไฟล์ทั้งหมดในไดเรกทอรีและทุกไดเรกทอรีย่อยซึ่งตรงกับรูปแบบสตริงที่มีให้บริการโดยผู้ใช้ในคำสั่ง

ไวยากรณ์ :

grep -i -r [string] [file_path]

ตัวอย่าง :

grep -i -r tomcat /home/gaurav/workspace

สตริงที่นี่คือ 'tomcat' และจะถูกค้นหาในพื้นที่ทำงานของไดเร็กทอรี ไดเร็กทอรีย่อยและไฟล์ทั้งหมดในไดเร็กทอรี 'เวิร์กสเปซ' จะถูกสแกนเพื่อให้ตรงกับรูปแบบสตริงที่มีให้

เอาท์พุต :

./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy://  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy:    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:    
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml:              pathname="conf/tomcat-users.xml" />
./server.xml:    
./tomcat-users.xml:  
./tomcat-users.xml:
./web.xml:  
./web.xml:  

หมายเหตุ : ในขณะที่ใช้-rตัวเลือกด้วยgrepคำสั่ง เราจำเป็นต้องระบุเส้นทางของไฟล์ ไม่ใช่ชื่อไฟล์

ค้นหาทั้งคำด้วยgrepคำสั่งเท่านั้น

หลายครั้งที่กรณีที่คุณจะค้นหาคำหนึ่งคำ แต่คุณจะต้องเติมเทอร์มินัลของคุณด้วยบรรทัดที่ตรงกันซึ่งมีคำที่ตรงกันของคุณ แต่ไม่ใช่เป็นคำแต่ละคำ คุณอาจเห็นบรรทัดที่มีคำบางคำที่มีส่วนย่อยเป็นสตริงที่คุณป้อน

งงกับเรื่องนี้? ไม่ต้องกังวล จะเข้าใจได้ง่ายขึ้นมากเมื่อคุณได้รับตัวอย่าง

ตัวอย่าง :

ที่นี่ ฉันต้องการค้นหาคำว่า 'cart' แต่ละคำ และแสดงบรรทัดทั้งหมดที่ตรงกับคำนี้ในไฟล์ 'sample.txt'

grep -i cart sample.txt

เอาท์พุต :

Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.

ในผลลัพธ์ คุณสามารถสังเกตได้ว่าคำว่า 'คาร์ทีเซียน' มีคำว่า 'รถเข็น' ด้วย ดังนั้น เส้นที่มีคำว่า 'คาร์ทีเซียน' ก็จะปรากฏขึ้นเช่นกัน แม้ว่าเราจะไม่ต้องการให้แสดงก็ตาม

คุณสามารถใช้-wตัวเลือกพร้อมกับgrepคำสั่งเพื่อแก้ไขความกำกวมนี้ได้

ไวยากรณ์ :

grep -i -w [string] [filename]

ตัวอย่าง :

grep -i -w cart sample.txt

เอาท์พุต :

use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.

ตอนนี้ เมื่อคุณใช้wตัวเลือก– ด้วยgrepคุณจะได้รับเฉพาะบรรทัดที่ใช้คำว่า 'cart' โดยรวม

กลับการค้นหาโดยใช้grepคำสั่ง

grepคำสั่งยังสามารถใช้ในแบบย้อนกลับได้ เราสามารถใช้grepคำสั่งตรงข้ามได้โดยการซ่อนบรรทัดที่ตรงกันและแสดงเฉพาะบรรทัดที่ไม่พบการจับคู่ คุณสามารถทำได้โดยใช้-vตัวเลือกด้วยgrepคำสั่ง

ไวยากรณ์ :

grep -i -v [string] [filename]

ตัวอย่าง :

grep -i -v resource sample.txt

เอาท์พุต :

INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.




use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.

ในผลลัพธ์ บรรทัดอื่นๆ ทั้งหมดจะแสดงนอกเหนือจากบรรทัดที่มีคำว่า 'resource'

การนับจำนวนครั้งของสตริงที่ตรงกัน

ผลลัพธ์ของgrepคำสั่งมักจะยาวมากหากข้อมูลในไฟล์มีมากมาย ยิ่งตรงกันมากเท่าไร ผลลัพธ์ของgrepคำสั่งก็จะยิ่งยาวขึ้นเท่านั้น Linux มีตัวเลือกให้คุณแสดงจำนวนครั้งของการแข่งขัน

ไวยากรณ์ :

grep -i -c [string] [filename]

ตัวอย่าง :

grep -i -c india sample.txt

เอาท์พุต :

[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$

ในที่นี้ ผลลัพธ์คือตัวเลขซึ่งเป็นจำนวนครั้งของคำว่า 'อินเดีย' ในไฟล์ sample.txt

หมายเหตุ : ฉันได้ใช้-iตัวเลือกในทุกตัวอย่างเพื่อความปลอดภัยกับปัญหาความละเอียดอ่อนของตัวพิมพ์ ในกรณีที่คุณแน่ใจเกี่ยวกับกรณีของคำที่คุณกำลังค้นหา คุณสามารถข้าม -i ตัวเลือกนี้ได้อย่างปลอดภัย

บทสรุป

เราได้เรียนรู้การใช้งานพื้นฐานของgrepคำสั่งบนระบบ Linux ในบทช่วยสอนนี้ นอกจากนี้เรายังได้เรียนรู้การแสดงเนื้อหาต่างๆ ที่เหมาะสมกับความต้องการของเรามากที่สุด และไม่เบียดเสียดเทอร์มินัลด้วยเส้นจำนวนมาก grepคำสั่งจะช่วยประหยัดเวลาได้อย่างแน่นอนหากใช้สำหรับการสแกนชุดข้อมูลขนาดใหญ่

Tags: #grep

วิธีคัดลอกและวางบน Chromebook

วิธีคัดลอกและวางบน Chromebook

สิ่งแรกที่คุณอาจสงสัยขณะเปลี่ยนไปใช้ Chromebook คือวิธีทำสิ่งพื้นฐาน ซึ่งเป็นสิ่งที่คุณมีที่หลังมือในระบบปฏิบัติการก่อนหน้าของคุณ การคัดลอกและวางเป็นฟังก์ชันพื้นฐานอย่างหนึ่งที่คุณต้องใช้ในจุดใดจุดหนึ่ง

วิธีทดสอบการพิมพ์บน Linux ด้วย tt

วิธีทดสอบการพิมพ์บน Linux ด้วย tt

ในยุคของเทคโนโลยีสมัยใหม่ การพิมพ์กลายเป็นกิจกรรมที่นิยมใช้กันทั่วไปในหลายๆ อาชีพ การเรียนรู้ที่จะพิมพ์เร็วขึ้นด้วยความแม่นยำสามารถช่วยให้คุณทำสิ่งต่างๆ ได้มากขึ้นในระยะเวลาเท่ากัน

Wi-Fi ไม่ทำงานบน Ubuntu? นี่คือวิธีแก้ไข

Wi-Fi ไม่ทำงานบน Ubuntu? นี่คือวิธีแก้ไข

อูบุนตูเป็นที่นิยมในด้านความทนทานและข้อผิดพลาดค่อนข้างน้อย แต่ก็ไม่มีปัญหาอะไรแน่นอน หนึ่งในปัญหาดังกล่าวคือไดรเวอร์ Wi-Fi คุณอาจเปิดระบบของคุณเพียงเพื่อจะพบว่า Wi-Fi ของคุณไม่ทำงาน

วิธีสร้างและสแกนรหัส QR บน Chromebook

วิธีสร้างและสแกนรหัส QR บน Chromebook

รหัสตอบกลับด่วนหรือรหัส QR สั้น ๆ เป็นบาร์โค้ดขั้นสูงที่มีข้อมูลมากกว่าบาร์โค้ดแบบเดิม รหัสเหล่านี้เป็นแบบสองมิติ ช่วยให้คุณสแกนในแนวตั้งหรือแนวนอนได้

วิธีการติดตั้งและลบแพ็คเกจใน Arch Linux

วิธีการติดตั้งและลบแพ็คเกจใน Arch Linux

ต้องการติดตั้งแพ็คเกจบน Arch Linux แต่ไม่รู้จะทำอย่างไร? ผู้คนจำนวนมากประสบปัญหานี้เมื่อย้ายจากการแจกแจงแบบเดเบียนไปยัง Arch เป็นครั้งแรก อย่างไรก็ตาม คุณสามารถจัดการแพ็คเกจบนระบบที่ใช้ Arch ของคุณได้อย่างง่ายดายโดยใช้ตัวจัดการแพ็คเกจ

7 สุดยอดแอพ Ubuntu Dynamic Wallpaper

7 สุดยอดแอพ Ubuntu Dynamic Wallpaper

แม้ว่าคุณจะสามารถใช้แอพเพื่อสไลด์โชว์วอลเปเปอร์ดั้งเดิมของ Ubuntu ได้ ต่อไปนี้คือแอพบางตัวสำหรับดาวน์โหลดและตั้งค่าวอลเปเปอร์แบบไดนามิก

10+ ส่วนขยาย GNOME ที่ดีที่สุดสำหรับ Ubuntu 20.04

10+ ส่วนขยาย GNOME ที่ดีที่สุดสำหรับ Ubuntu 20.04

ส่วนขยายยอดนิยมมากมาย เช่น Gno-Menu, Extended Gestures ใช้งานไม่ได้กับ Ubuntu 20.04 ดังนั้นนี่คือรายการส่วนขยาย GNOME ที่ใช้งานได้ดีที่สุด

5 แอพถ่ายโอนไฟล์ Wi-Fi ที่ดีที่สุดจาก Ubuntu ไปยัง Android

5 แอพถ่ายโอนไฟล์ Wi-Fi ที่ดีที่สุดจาก Ubuntu ไปยัง Android

กลไกอย่างเช่น FTP, การถ่ายโอนไฟล์แบบเพียร์ทูเพียร์, การถ่ายโอน Wi-Fi จะช่วยคุณประหยัดเวลาหากคุณแชร์ไฟล์ระหว่าง Android และ Ubuntu บ่อยๆ

15 ธีมที่ดีที่สุดสำหรับ Ubuntu 20.04 ในปี 2020

15 ธีมที่ดีที่สุดสำหรับ Ubuntu 20.04 ในปี 2020

ธีมที่อัปเดตใหม่จำนวนมากพร้อมที่จะติดตั้งบนเดสก์ท็อป GNOME ใหม่ของ Ubuntu 20.04 แล้ว นี่คือรายการธีม Ubuntu ที่ดีที่สุดในปี 2020

ความแตกต่างระหว่าง Root Superuser บน Ubuntu

ความแตกต่างระหว่าง Root Superuser บน Ubuntu

สงสัยว่าความแตกต่างระหว่าง Root Superuser บน Ubuntu คืออะไร? เรามีคุณครอบคลุมที่นี่