Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

การกระจาย GNU/Linux รวมโปรแกรมมากมายสำหรับจัดการข้อความ ส่วนใหญ่จัดหาโดย GNU core utilities มีโค้งการเรียนรู้นิดหน่อย แต่ยูทิลิตี้เหล่านี้สามารถเป็นประโยชน์และมีประสิทธิภาพมากเมื่อใช้ถูกต้อง

นี่คือ 13 เครื่องมือจัดการข้อความทรงพลังที่ทุกผู้ใช้บรรทัดคำสั่งควรรู้

1. cat

Cat ออกแบบมาเพื่อ concatenate ไฟล์ แต่ใช้บ่อยที่สุดเพื่อแสดงไฟล์เดียว โดยไม่มีอาร์กิวเมนต์ cat อ่าน standard input จนกว่าจะกด Ctrl + D (จากเทอร์มินัลหรือจากเอาต์พุทโปรแกรมอื่นหากใช้ pipe) Standard input สามารถระบุได้ชัดเจนด้วย -

Cat มีตัวเลือกที่มีประโยชน์หลายอย่าง โดยเฉพาะ:

  • -A พิมพ์ "$" ที่ท้ายแต่ละบรรทัด และแสดงอักขระที่พิมพ์ไม่ได้โดยใช้ caret notation
  • -n หมายเลขบรรทัดทั้งหมด
  • -b หมายเลขบรรทัดที่ไม่ว่าง
  • -s ลดชุดบรรทัดว่างหลายบรรทัดเหลือบรรทัดว่างเดียว

ในตัวอย่างต่อไป เรา concatenate และหมายเลขเนื้อหาของ file1, standard input, และ file3

cat -n file1 - file3
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

2. sort

ตามชื่อ sort เรียงลำดับเนื้อหาไฟล์ตามตัวอักษรและตัวเลข

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

3. uniq

Uniq รับไฟล์ที่เรียงแล้วและลบบรรทัดซ้ำ มักเชื่อมกับ sort ในคำสั่งเดียว

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

4. comm

Comm ใช้เปรียบเทียบไฟล์ที่เรียงแล้วสองไฟล์ บรรทัดต่อบรรทัด มันสร้างเอาต์พุทสามคอลัมน์: คอลัมน์แรกสองคอลัมน์มีบรรทัดที่เฉพาะเจาะจงไปกับไฟล์แรกและไฟล์ที่สองตามลำดับ และคอลัมน์ที่สามแสดงบรรทัดที่พบในทั้งสองไฟล์

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

5. cut

Cut ใช้ดึงส่วนเฉพาะของบรรทัด โดยอิงจากอักขระ ฟิลด์ หรือไบต์ มันอ่านจากไฟล์หรือ standard input หากไม่ระบุไฟล์

การตัดตามตำแหน่งอักขระ

ตัวเลือก -c ระบุตำแหน่งอักขระเดียวหรือช่วงอักขระหนึ่งหรือมากกว่า

ตัวอย่าง:

  • -c 3: อักขระที่ 3
  • -c 3-5: จากอักขระที่ 3 ถึง 5
  • -c -5 หรือ -c 1-5: จากอักขระที่ 1 ถึง 5
  • -c 5-: จากอักขระที่ 5 ถึงท้ายบรรทัด
  • -c 3,5-7: อักขระที่ 3 และจาก 5 ถึง 7
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

การตัดตามฟิลด์

ฟิลด์ถูกคั่นด้วยตัวคั่น (delimiter) ที่ประกอบด้วยอักขระเดียว ระบุด้วยตัวเลือก -d ตัวเลือก -f เลือกตำแหน่งฟิลด์หรือช่วงฟิลด์หนึ่งหรือมากกว่า ใช้รูปแบบเดียวกับข้างต้น

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

6. dos2unix

GNU/Linux และ Unix ปกติจบบรรทัดข้อความด้วย line feed (LF) ในขณะที่ Windows ใช้ carriage return และ line feed (CRLF) ปัญหาความเข้ากันได้อาจเกิดขึ้นเมื่อจัดการข้อความ CRLF บน Linux ซึ่งเป็นที่มาของ dos2unix มันแปลงตัวสิ้นสุด CRLF เป็น LF

ในตัวอย่างต่อไป คำสั่ง file ใช้ตรวจสอบรูปแบบข้อความก่อนและหลังใช้ dos2unix

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

7. fold

เพื่อให้บรรทัดข้อความยาวง่ายต่อการอ่านและจัดการ คุณสามารถใช้ fold ซึ่งห่อบรรทัดให้กว้างตามที่ระบุ

Fold ตรงตามความกว้างที่ระบุอย่างเคร่งครัด โดยค่าเริ่มต้น ตัดคำหากจำเป็น

fold -w 30 longline.txt
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

หากการตัดคำไม่พึงประสงค์ คุณสามารถใช้ตัวเลือก -s เพื่อตัดที่ช่องว่าง

fold -w 30 -s longline.txt
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

8. iconv

เครื่องมือนี้แปลงข้อความจากเอนโคดดิ้งหนึ่งไปยังอีกเอนโคดดิ้งหนึ่ง ซึ่งมีประโยชน์มากเมื่อจัดการกับเอนโคดดิ้งแปลกๆ

iconv -f input_encoding -t output_encoding -o output_file input_file
  • "input_encoding" คือเอนโคดดิ้งที่คุณแปลงจาก
  • "output_encoding" คือเอนโคดดิ้งที่คุณแปลงไป
  • "output_file" คือชื่อไฟล์ที่ iconv จะบันทึก
  • "input_file" คือชื่อไฟล์ที่ iconv จะอ่าน

หมายเหตุ: คุณสามารถแสดงรายการเอนโคดดิ้งที่มีอยู่ด้วย iconv -l

9. sed

sed เป็น stream editor ที่ทรงพลังและยืดหยุ่น ใช้บ่อยที่สุดสำหรับค้นหาและแทนที่สตริงด้วยไวยากรณ์ต่อไปนี้

คำสั่งต่อไปนี้จะอ่านจากไฟล์ที่ระบุ (หรือ standard input) แทนที่ส่วนของข้อความที่ตรงกับ regular expression pattern ด้วย replacement string และส่งผลลัพธ์ไปยังเทอร์มินัล

sed s/pattern/replacement/g filename

เพื่อแก้ไขไฟล์ต้นฉบับแทน คุณสามารถใช้ธง -i

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

10. wc

ยูทิลิตี้ wc พิมพ์จำนวนไบต์ อักขระ คำ หรือบรรทัดในไฟล์

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

11. split

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

การแบ่งตามจำนวนบรรทัด

split -l num_lines input_file output_prefix
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

การแบ่งตามไบต์

split -b bytes input_file output_prefix
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

การแบ่งเป็นจำนวนไฟล์เฉพาะ

split -n num_files input_file output_prefix
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

12. tac

Tac ซึ่งเป็น cat เรียงกลับ ทำตรงนั้น: แสดงไฟล์ด้วยบรรทัดในลำดับย้อนกลับ

13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

13. tr

เครื่องมือ tr ใช้แปลหรือลบชุดอักขระ

ชุดอักขระปกติเป็นสตริงหรือช่วงอักขระ ตัวอย่าง:

  • "A-Z": ตัวอักษรใหญ่ทั้งหมด
  • "a-z0-9": ตัวอักษรเล็กและตัวเลข
  • "\n[:punct:]": newline และอักขระวรรคตอน

อ้างอิง man page ของ tr สำหรับรายละเอียดเพิ่มเติม

เพื่อแปลงชุดหนึ่งไปอีกชุด ใช้ไวยากรณ์ต่อไปนี้:

tr SET1 SET2

ตัวอย่างเช่น เพื่อแทนที่ตัวอักษรเล็กด้วยคู่ใหญ่ คุณสามารถใช้:

tr "a-z" "A-Z"
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

เพื่อลบชุดอักขระ ใช้ธง -d

tr -d SET
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

เพื่อลบคอมพลีเมนต์ของชุดอักขระ (เช่น ทุกอย่างยกเว้นชุด) ใช้ -dc

tr -dc SET
13 เครื่องมือที่มีประโยชน์สำหรับการทำงานกับข้อความบนบรรทัดคำสั่ง

สรุป

มีอะไรมากมายที่ต้องเรียนรู้เมื่อพูดถึงบรรทัดคำสั่ง Linux หวังว่าคำสั่งข้างต้นจะช่วยให้คุณจัดการข้อความบนบรรทัดคำสั่งได้ดีขึ้น