ดาวโหลด บทความ สถิติผู้ใช้ เกี่ยวกับเรา ติดต่อเรา
HomeCentOS

วิธีใช้ grep tr cut

ใน CentOS เวลาดูสคริปของคนอื่นจะเห็นคำว่า grep tr cut ซึ่งเข้าใจยาก เลยเขียนสรุปไว้กันลืม

ดาวโหลด bash for windows ที่นี่
unzip แล้วคลิกไฟล์ bash.exe ได้เลย

คำสั่งตัวอย่าง
db=$(grep db_collation backup/palthai_db.conf | tr '&' '\n ' |grep SCHEMA_NAME |cut -d "=" -f 2)

grep db_collation backup/palthai_db.conf
ให้หาคำว่า db_collation ในไฟล์ backup/palthai_db.conf
accesshosts=0=localhost
db_collation=CATALOG_NAME=def&COLLATION_NAME=&SCHEMA_NAME=palthai_db&SQL_PATH=
ผลลัพธ์ที่ได้คือ
db_collation=CATALOG_NAME=def&COLLATION_NAME=&SCHEMA_NAME=palthai_db&SQL_PATH=

| tr '&' '\n ' 
นำผลลัพธ์ที่ได้ไปประมวลผลต่อ โดยเปลี่ยน & ให้เป็นตัวขึ้นบรรทัดใหม่ '\n'

| grep SCHEMA_NAME
นำไปค้นหาคำว่า SCHEMA_NAME จะได้ผลลัพธ์เป็น
SCHEMA_NAME=palthai_db

| cut -d "=" -f 2
แบ่งด้วย = แล้วเลือกตัวที่ 2 จึงได้ผลลัพธ์เป็น palthai_db

ศึกษาเพิ่มเติมที่นี่
https://dandreamsofcoding.com/2016/01/15/linux-commands-cut-and-tr/

สรุป
grep text1 file1   = ให้หาคำว่า text1 ในไฟล์ file1
| tr '&' '\n '   = นำผลลัพธ์ที่ได้ไปประมวลผลต่อ โดยเปลี่ยน & ให้เป็น '\n'
| grep text2   = นำไปค้นหาคำว่า text2 
| cut -d "=" -f 2   = แบ่งด้วย = แล้วเลือกตัวที่ 2
cut -d ' ' -f5,9   = แบ่งด้วย ' ' แล้วเลือกตัวที่ 5,9
cut -d ' ' -f1,3-5,9   = แบ่งด้วย ' ' แล้วเลือกตัวที่ 1,3,4,5,9
| tr -s ' '   = ลดช่องว่าง เช่น aaa  00    000 ได้ผลเป็น aaa 00 000
| tr -d [   = ลบตัวอักษร [
| tr -d /   = ลบตัวอักษร / เช่น 14/Jan/2016 เป็น 14Jan2016
| tr -t a-z A-Z  = แก้ตัวพิมพ์เล็กเป็นตัวพิมพ์ใหญ่
| tr -t \\n ,  = เปลี่ยนตัวขึ้นบรรทัดใหม่ \n ให้เป็น ,
head -10 log.txt   = เลือก 10 บรรทัดแรกของไฟล์
${db#*_}  = ตัดด้านหน้า _ ออก  เช่น palthai_db เป็น db
${db%_*}  = ตัดด้านหลัง _ ออก เช่น palthai_db เป็น palthai

อ่านเพิ่มเติม 
https://www.thegeekstuff.com/2010/07/bash-string-manipulation/

1 ส.ค. 62
© 2000 - 2024 palthai.com. All rights reserved.