Android

คำสั่งตัด Linux พร้อมตัวอย่าง

ये कà¥?या है जानकार आपके à¤à¥€ पसीने छà¥?ट ज

ये कà¥?या है जानकार आपके à¤à¥€ पसीने छà¥?ट ज

สารบัญ:

Anonim

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

ในบทช่วยสอนนี้เราจะแสดงวิธีใช้คำสั่ง Linux cut ผ่านตัวอย่างการปฏิบัติและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกการตัดทั่วไป

วิธีใช้คำสั่งตัด

ไวยากรณ์สำหรับคำสั่ง cut มีดังนี้:

cut OPTION……

เมื่อใช้คำสั่ง cut คุณต้องใช้หนึ่งในอ็อพชันต่อไปนี้:

  • -f ( --fields=LIST ) - เลือกโดยการระบุฟิลด์ชุดของฟิลด์หรือช่วงของฟิลด์ นี่คือตัวเลือกที่ใช้กันมากที่สุด -b ( --bytes=LIST ) - เลือกโดยระบุไบต์ชุดของไบต์หรือช่วงของไบต์ -c ( --characters=LIST ) - เลือกโดยการระบุตัวอักษรชุดของตัวละครหรือช่วงของตัวละคร

ตัวเลือกอื่น ๆ:

  • -d (- ตัวคั่น) - ระบุตัวคั่นที่จะใช้แทนตัวคั่น“ TAB” เริ่มต้น - --complement - เสริมการเลือก เมื่อใช้ตัวเลือกนี้การตัดจะแสดงไบต์อักขระหรือเขตข้อมูลทั้งหมดยกเว้นที่เลือก -s ( --only-delimited ) - โดยการตัดเริ่มต้นจะพิมพ์บรรทัดใด ๆ ที่ไม่มีอักขระตัวคั่น เมื่อใช้ตัวเลือกนี้การตัดจะไม่พิมพ์เส้นที่ไม่มีตัวคั่น --output-delimiter - ค่าเริ่มต้นคือการใช้ตัวคั่นอินพุตเป็นตัวคั่นเอาต์พุต ตัวเลือกนี้ช่วยให้คุณระบุสตริงตัวคั่นเอาต์พุตอื่น

คำสั่ง cut สามารถยอมรับชื่อไฟล์ไฟล์อินพุตได้มากกว่าศูนย์ หากไม่ได้ระบุไฟล์หรือเมื่อมีไฟล์ - ตัดจะอ่านอินพุตมาตรฐาน

อาร์กิวเมนต์ LIST ที่ส่งไปยังตัวเลือก -f , -b และ -c สามารถเป็นจำนวนเต็มหลายจำนวนเต็มคั่นด้วยเครื่องหมายจุลภาคช่วงของจำนวนเต็มหรือช่วงจำนวนเต็มหลายช่วงคั่นด้วยเครื่องหมายจุลภาค แต่ละช่วงสามารถเป็นหนึ่งในสิ่งต่อไปนี้:

  • N เขตข้อมูล Nth ไบต์หรืออักขระเริ่มต้นจาก 1 N- จากเขตข้อมูล Nth ไบต์หรืออักขระจนถึงจุดสิ้นสุดของบรรทัด NM จาก Nth ถึงฟิลด์ Mth ไบต์หรืออักขระ -M ตั้งแต่แรกถึงฟิลด์ Mth ไบต์หรืออักขระ

วิธีการตัดตามสนาม

คำสั่ง Cut ส่วนใหญ่จะใช้เพื่อแสดงฟิลด์ที่เลือกจากแต่ละบรรทัดของไฟล์หรืออินพุตมาตรฐาน เมื่อไม่ได้ระบุตัวคั่นเริ่มต้นคือ“ TAB”

ในตัวอย่างด้านล่างเราจะใช้ไฟล์ต่อไปนี้ ฟิลด์ทั้งหมดจะถูกคั่นด้วยแท็บ

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

ในการแสดงฟิลด์ที่ 1 และฟิลด์ที่ 3 คุณจะใช้:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

หรือถ้าคุณต้องการแสดงตั้งแต่วันที่ 1 ถึงฟิลด์ที่ 4:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

วิธีการตัดตามตัวคั่น

หากต้องการตัดตามตัวคั่นให้ใช้ตัวเลือก -d ตามด้วยตัวคั่นที่คุณต้องการใช้

ตัวอย่างเช่นการแสดงฟิลด์ที่ 1 และ 3 โดยใช้“:” เป็นตัวคั่นคุณจะต้องพิมพ์:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

คุณสามารถใช้อักขระเดี่ยวใดก็ได้เป็นตัวคั่น ในตัวอย่างต่อไปนี้เราใช้อักขระช่องว่างเป็นตัวคั่นและพิมพ์ฟิลด์ที่ 2:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

วิธีการเสริมการเลือก

เพื่อเสริมรายการเขตข้อมูลการเลือกใช้ - ตัวเลือกการใช้งาน สิ่งนี้จะพิมพ์เฉพาะฟิลด์ที่ไม่ได้เลือกด้วยตัวเลือก -f

คำสั่งต่อไปนี้จะพิมพ์ฟิลด์ทั้งหมดยกเว้นวันที่ 1 และ 3:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

วิธีระบุตัวคั่นเอาต์พุต

ในการระบุตัวคั่นเอาต์พุตใช้ --output-delimiter ตัวอย่างเช่นในการตั้งค่าตัวคั่นเอาต์พุตเป็น _ คุณจะใช้:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

วิธีตัดตามจำนวนไบต์และตัวอักษร

ก่อนที่จะไปไกลกว่านี้ขอแยกความแตกต่างระหว่างไบต์และตัวละคร

หนึ่งไบต์คือ 8 บิตและสามารถแทนค่าได้ 256 ค่า เมื่อมาตรฐาน ASCII ถูกสร้างขึ้นมันคำนึงถึงตัวอักษรตัวเลขและสัญลักษณ์ทั้งหมดที่จำเป็นสำหรับการทำงานกับภาษาอังกฤษ ตารางอักขระ ASCII มี 128 อักขระและแต่ละอักขระมีหนึ่งไบต์ เมื่อคอมพิวเตอร์เริ่มเป็นที่นิยมทั่วโลก บริษัท เทคโนโลยีเริ่มแนะนำการเข้ารหัสอักขระใหม่สำหรับภาษาต่าง ๆ และสำหรับภาษาที่มีอักขระมากกว่า 256 ตัวการแมปแบบ 1 ต่อ 1 ไม่สามารถทำได้ สิ่งนี้นำไปสู่ปัญหาต่าง ๆ เช่นการแบ่งปันเอกสารหรือการเรียกดูเว็บไซต์และมาตรฐาน Unicode ใหม่ที่สามารถรองรับระบบการเขียนส่วนใหญ่ของโลกได้ UTF-8 ถูกสร้างขึ้นเพื่อแก้ไขปัญหาเหล่านี้ ใน UTF-8 อักขระบางตัวจะไม่ถูกแสดงด้วย 1 ไบต์ อักขระสามารถถูกแทนด้วย 1 ไบต์ถึง 4 ไบต์

ในตัวอย่างต่อไปนี้เรากำลังใช้อักขระ ü ที่มีขนาด 2 ไบต์

ใช้ตัวเลือก -b ( --bytes ) เพื่อตัดส่วนของบรรทัดออกโดยระบุตำแหน่งไบต์

เลือกไบต์ที่ 5:

echo 'drüberspringen' | cut -b 5

b

เลือกไบต์ที่ 5, 9 และ 13:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

เลือกช่วงจาก 1 ถึง 5 ไบต์:

echo 'drüberspringen' | cut -b 1-5

drüb

ในขณะที่เขียนบทความนี้เวอร์ชั่นของการตัดที่รวมอยู่ใน GNU coreutils ไม่มีตัวเลือกให้ตัดตามตัวอักษร เมื่อใช้ตัวเลือกตัด -c พฤติกรรมเช่นเดียวกับเมื่อใช้ตัวเลือก -b

ตัวอย่างการตัด

คำสั่ง cut มักใช้ร่วมกับคำสั่งอื่นผ่านการไพพ์ นี่คือตัวอย่างเล็ก ๆ น้อย ๆ

รับรายชื่อผู้ใช้ทั้งหมด

เอาต์พุตของคำสั่ง getent passwd ถูกส่งผ่านเพื่อ cut ซึ่งจะพิมพ์ไฟล์ที่ยื่นครั้งที่ 1 โดยใช้ : เป็นตัวคั่น

getent passwd | cut -d ':' -f1

ดู 10 คำสั่งที่ใช้บ่อยที่สุด

ในตัวอย่างต่อไปนี้จะใช้ในการตัด 8 ไบต์แรกจากแต่ละบรรทัดของเอาต์พุตคำสั่ง history

history | cut -c8- | sort | uniq -c | sort -rn | head

ข้อสรุป

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

ตัดขั้ว