Download Articles Stats About us Contact us
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.