การใช้งานคอมพิวเตอร์คงหนีไม่พ้นการสร้างข้อมูล การแก้ไขข้อมูล และการจัดการข้อมูลในรูปแบบต่างๆ สำหรับลินุกซ์ซึ่งข้อมูลส่วนมากจะอยู่ในรูปแบบไฟล์ข้อความ (text file) ลินุกซ์จึงมีโปรแกรมแก้ไขไฟล์ข้อความ (text editor) มาให้ใช้อยู่หลายตัว เช่น nano, gedit, vi, emacs เราสามารถใช้โปรแกรม เหล่านี้ในการแก้ไขไฟล์ข้อความ เขียนสคริปเพื่อใช้กับแบชเชลล์ แก้ไขไฟล์การตั้งค่า (configuration file) ของระบบหรือของแอพพลิเคชั่น รวมถึงสามารถใช้เขียนโปรแกรมได้ด้วย
ถึงแม้ลินุกซ์จะมีเครื่องมือในการตั้งค่าระบบในแบบ GUI มาให้ซึ่งเครื่องมือเหล่านี้ก็จะเขียนค่าต่างๆลงในไฟล์การตั้งค่าให้เรา แต่หากเราใช้โปรแกรมแก้ไขไฟล์ข้อความได้อย่างคล่องแคล่วเราสามารถแก้ไขไฟล์การตั้งค่าได้โดยตรงซึ่งการทำงานจะเร็วกว่ามาก สำหรับแอพพลิเคชั่นในการแก้ไขเอกสาร (word processing program) ที่อยู่ในชุดแอพพลิเคชั่นสำนักงาน (office suit) นั้นไม่ถือว่าเป็นโปรแกรมแก้ไขไฟล์ข้อความพื้นฐานเพราะแอพพลิเคชั่นเหล่านั้นจะใส่ข้อมูลเกี่ยวกับการจัดรูปแบบข้อความลงไปด้วย ซึ่งหากนำใช้ในการแก้ไขไฟล์การตั้งค่าจะทำให้เกิดข้อผิดพลาดได้
ภาพแสดงชนิดของ editor
ในการสร้างไฟล์เราสามารถสร้างไฟล์โดยใช้คำสั่งที่ลินุกซ์มีมาให้โดยไม่ต้องใช้โปรแกรมแก้ไขไฟล์ข้อความก็ได้ ความรู้จากการสร้างไฟล์โดยใช้คำสั่งที่ลินุกซ์มีให้จะเป็นประโยชน์ในการสร้างไฟล์โดยใช้สคริปเพราะเวลาที่เราเรียกใช้งานสคริปหมายถึงเราให้ระบบทำงานให้เราโดยที่เราไม่ต้องคอยสั่งการใดๆ
ตัวอย่างการสร้างไฟล์โดยใช้คำสั่ง echo
$ echo line one > myfile : เครื่องหมาย > หมายถึงการแสดงผลในไฟล์ซึ่งคือการเขียนลงในไฟล์นั่นเอง หากไม่มีไฟล์อยู่ก่อนแล้วจะสร้างไฟล์เปล่าขึ้นมาก่อน
$ echo line two >> myfile : เครื่องหมาย >> หมายถึงเพิ่มข้อความในไฟล์
$ echo line three >> myfile : ครื่องหมาย >> หมายถึงเพิ่มข้อความในไฟล์
ภาพตัวอย่างการสร้างไฟล์ด้วยคำสั่ง echo
ตัวอย่างการสร้างไฟล์โดยใช้คำสั่ง cat
$ cat << EOF > myfile
> line one
> line two
> line three
> EOF
$
ภาพตัวอย่างการสร้างไฟล์ด้วยคำสั่ง cat
คำสั่ง Nano
Nano เป็นโดย (text editor) พื้นฐานที่ใช้งานได้ง่ายที่สุด เพียงแค่เรียกคำสั่ง nano ตามด้วยชื่อไฟล์ เช่น nano filename ( filename คือชื่อไฟล์ที่ต้องการ) ถ้าไม่มีชื่อไฟล์ที่ระบุจะเป็นการสร้างไฟล์ใหม่ขึ้นมา เมื่อเปิดหน้าจอ nano ขึ้นมาแล้ว เราจะเห็นตัวช่วยเหลือ (help) อยู่ที่ด้านล่างของหน้าจอซึ่งแสดงคีย์ลัด (shortcut) ที่ใช้ในการสั่งการ nano เครื่องหมาย ^ ในคีย์ลัดหมายถึงปุ่ม Ctrl ตัวอย่างการใช้งานคีย์ลัด เช่น ^x หมายถึงกดปุ่ม Ctrl ค้างไว้และกดปุ่ม x
ภาพแสดงตัวอย่างหน้าจอ nano
คำสั่ง Gedit
gedit (อ่านว่า จี อีดิท) เป็นโปรแกรมแก้ไขข้อความในแบบกราฟฟิก (graphic editor) ของ gnome เดสก์ทอป( ถ้าเป็น KDE เดสก์ทอป โปรแกรมแก้ไขข้อความในแบบกราฟฟิกจะเป็น kwrite ) นั่นหมายความว่า gedit ต้องทำงานภายใต้สิ่งแวดล้อมของแบบ GUI เท่านั้น gedit ใช้งานง่ายและมีประสิทธิภาพสูง สามารถปรับแต่งได้ และมี plug-in ให้เลือกใช้เพื่อเพิ่มขีดความสามารถได้ หน้าจอของ gedit จะคล้ายๆกับ notepad ในระบบปฏิบัติการ Windows การเรียกใช้ gedit ทำได้โดยใช้คำสั่ง gedit ตามด้วยชื่อไฟล์ เช่น gedit filename ( filename คือชื่อไฟล์ที่ต้องการ) ถ้าไม่มีชื่อไฟล์ที่ระบุจะเป็นการสร้างไฟล์ใหม่ขึ้นมา
ภาพแสดงตัวอย่างหน้าจอ gedit
สำหรับนักพัฒนา (developer) หรือผู้ดูและระบบที่มีประสบการณ์ในการใช้งานลินุกซ์หรือระบบปฏิบัติการในแบบยูนิกซ์มักจะใช้โปรแกรม vi หรือโปรแกรม emacs เป็นหลัก ทั้งโปรแกรม vi และโปรแกรม emacs มีอยู่ในลินุกซ์และระบบปฏิบัติการในแบบยูนิกซ์ทุกรุ่น โปรแกรม vi และโปรแกรม emacs สามารถทำงานได้โดยไม่ต้องใช้สิ่งแวดล้อมแบบ GUI แต่ก็มีความสามารถในการทำงานภายใต้ GUI พร้อมส่วนขยายที่เพิ่มความเป็นมิตรกับผู้ใช้มากขึ้น สำหรับผู้ใช้งานมือใหม่ถึงแม้การใช้โปรแกรม vi และโปรแกรม emacs จะต้องการการเรียนรู้พอสมควรแต่ถ้าใช้งานคล่องแคล่วแล้วจะมีประโยชน์อย่างมาก
คำสั่ง vi
โปรแกรม vi อ่านว่า วีไอ โดยโปรแกรมที่เรียกใช้งานคือ vim ย่อมาจาก vi improvment เราควรเรียนรู้การใช้งาน vi ให้คุ้นเคยไว้บ้างเพราะว่า vi มีอยูในลินุกซ์แทบจะทุกดิสทริบิวชั่น (เผื่อในกรณีที่ดิสทริ
บิวชั่นที่ต้องการใช้อาจจะไม่มี editor ที่เราถนัด) โครงการ GNOME ได้เพิ่มส่วนขยายให้โปรแกรม vi สามารถทำงานได้ภายใต้ GUI รู้จักกันในชื่อ gvim ส่วนโครงการ KDE ก็มีเช่นเดียวกันในชื่อโปรแกรม kvim สำหรับมือใหม่อาจจะเริ่มจากการใช้งานในแบบ GUI ก่อน
ภาพแสดงหน้าจอ vim
เราสามารถเริ่มต้นศึกษาการใช้งานโปรแกรม vi ได้จากคู่มือการใช้งานโดยเรียกคำสั่ง vimtutor ซึ่งจะมีบทเรียนให้เราเรียนรู้จนเราสามารถใช้โปรแกรม vi ได้อย่างมืออาชีพหรืออาจดูได้จาก http://www.openvim.com.
ภาพแสดงหน้าจอ vim
โปรแกรม vi มีโหมดในการใช้งานที่แตกต่างกัน 3 โหมด แต่ละโหมดจะมีการใช้งานคำสั่งและคีย์ลัดที่แตกต่างกัน ประกอบด้วย
1. Command mode : เมื่อเราเรียกใช้งานโปรแกรม vi โหมดเริ่มต้นจะเป็นการทำงานในโหมด command mode การสั่งการใน command mode จะใช้ตัวอักษรในการสั่งการโดยแต่ละตัวอักษรจะแทนคำสั่งหรือกิจกรรมที่เราต้องการดำเนินการ
2. Insert mode : เราใช้ insert mode เพื่อแทรกข้อความในไฟล์ เราเรียกใช้ insert mode โดยการกดอักษร i ใน command mode เมื่ออยู่ใน insert mode ด้านล่างของจอจะแสดงข้อความ ?INSERT? เพื่อให้เรารู้ว่ากำลังใช้งาน insert mode อยู่ และเมื่อต้องการออกจาก insert mode ให้กด Esc เพื่อกลับสู่ command mode
3. Line mode : ในกรณีที่เราต้องการเรียกใช้งานคำสั่งในลินุกซ์อื่นๆไม่ใช่คำสั่งที่มากับโปรแกรม vim ทำได้โดยการกดอักษร : เพื่อใช้งาน line mode ใน line mode เราสามารถเรียกใช้งานคำสั่งอื่นๆของลินุกซ์ได้ รวมถึงคำสั่งของ line text editor ด้วย line text editor เป็นโปรแกรมแก้ไขข้อความในยุคแรกๆที่การดำเนินการกับข้อความจะทำครั้งละบรรทัดไม่ใช่ครั้งละตัวอักษรแบบในปัจจุบัน
ตัวอย่างคำสั่งเบื้องต้นที่สำคัญของโปรแกรม vi
vi myfile เป็นการเรียกใช้โปรแกรม vi เพื่อแก้ไขไฟล์ myfile
vi -r myfile เป็นการเรียกใช้โปรแกรม vi เพื่อแก้ไขไฟล์ myfile ในโหมดการกู้คืนไฟล์ที่เสียหายจากระบบทำงานล้มเหลว
: r file2 ให้อ่านไฟล์ file2 และแทรกเคอเซอร์ที่ตำแหน่งปัจจุบัน
: w บันทึกข้อมูลลงในไฟล์
: w myfile บันทึกข้อมูลลงในไฟล์ myfile
: w! file2 บันทึกข้อมูลทับไฟล์ file2
😡 หรือ :wq ออกจากโปรแกรม vi และบันทึกการแก้ไขไฟล์ (save&exit)
:q ออกจากโปรแกรม vi (ระบบจะถามหากมีการแก้ไขไฟล์)
:q! ออกจากโปรแกรม vi โดยไม่บันทึกการแก้ไขใดๆ
:sh เป็นการเปิดใช้งานหน้าจอคอนโซลของลินุกซ์และเมื่อออกจากหน้าจอคอนโซลด้วยการพิมพ์คำสั่ง exit ก็จะกลับมายังหน้าจอ vi ดังเดิม
:! Command เป็นการเรียกใช้คำสั่งของลินุกซ์จากหน้าจอ vi เลย เหมาะกับคำสั่งที่ไม่มีการโต้ตอบ เช่น :! wc % เป็นการเรียกใช้คำสั่ง word count เพื่อนับตัวอักษรจากไฟล์ % ซึ่งหมายถึงไฟล์ที่กำลังแก้ไขอยู่ในปัจจุบัน
ตัวอย่างคีย์ที่ใช้ในการเปลี่ยนตำแหน่งเคอร์เซอร์
ลูกศร ใช้ในการเลื่อนเคอร์เซอร์ตามทิศทางของลูกศร
j หรือ <ret> เป็นการเลื่อนเคอร์เซอร์ลง 1 บรรทัด
k เป็นการเลื่อนเคอร์เซอร์ขึ้น 1 บรรทัด
h หรือ backspace เป็นการเลื่อนเคอร์เซอร์ไปทางซ้าย 1 ตัวอักษร
l หรือ space เป็นการเลื่อนเคอร์เซอร์ไปทางขวา 1 ตัวอักษร
0 เลื่อนเคอร์เซอร์ไปที่ต้นบรรทัด
$ เลื่อนเคอร์เซอร์ไปที่ท้ายบรรทัด
w เลื่อนเคอร์เซอร์ไปที่ตัวอักษรแรกของคำถัดไป
:0 หรือ 1G เลื่อนเคอร์เซอร์ไปที่ต้นไฟล์
:n หรือ nG เลื่อนเคอร์เซอร์ไปที่บรรทัดที่ n
:$ หรือ G เลื่อนเคอร์เซอร์ไปที่บรรทัดที่บรรทัดสุดท้ายในไฟล์
CTRL-F or Page Down เลื่อนเคอร์เซอร์ไปยังหน้าถัดไป
CTRL-B or Page Up เลื่อนเคอร์เซอร์ไปยังหน้าก่อนหน้า
คีย์สำคัญที่ใช้ในการค้นหาข้อความในโปรแกรม vi มีดังนี้
/pattern ค้นหาถัดจากเคอร์เซอร์ไปข้างหน้า
?pattern ค้นหาถัดจากเคอร์เซอร์ย้อนหลัง
n เลื่อนเคอร์เซอร์ไปยังข้อความถัดไปที่พบ
N เลื่อนเคอร์เซอร์ไปยังข้อความก่อนหน้าที่พบ
คีย์สำคัญที่ใช้ในการแก้ไข เพิ่ม หรือ ลบ ข้อความในโปรแกรม vi มีดังนี้
a เพิ่มข้อความที่ตำแหน่งถัดจากเคอร์เซอร์ กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
A เพิ่มข้อความต่อท้ายในบรรทัดที่เคอร์เซอร์อยู่ กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
i แทรกข้อความที่ตำแหน่งก่อนหน้าเคอร์เซอร์ กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
I แทรกข้อความที่ต้นบรรทัดที่เคอร์เซอร์อยู่ กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
o เพิ่มบรรทัดใหม่ถัดจากบรรทัดที่เคอร์เซอร์อยู่และแทรกข้อความลงไป กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
O เพิ่มบรรทัดใหม่ก่อนหน้าบรรทัดที่เคอร์เซอร์อยู่และแทรกข้อความลงไป กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
r แทนที่ตัวอักษรที่ตำแหน่งปัจจุบันของเคอร์เซอร์
R แทนที่ตัวอักษรตั้งแต่ตำแหน่งปัจจุบันของเคอร์เซอร์ กด esc เพื่อยกเลิกการเพิ่มข้อความแบบนี้
x ลบตัวอักษรที่ตำแหน่งปัจจุบันของเคอร์เซอร์
Nx ลบตัวอักษรจำนวน N ตัวอักษร เริ่มจากตำแหน่งปัจจุบันของเคอร์เซอร์
dw ลบคำที่ตำแหน่งปัจจุบันของเคอร์เซอร์
D ลบส่วนที่เหลือจนสิ้นสุดบรรทัด เริ่มจากตำแหน่งปัจจุบันของเคอร์เซอร์
dd ลบบรรทัดที่ตำแหน่งปัจจุบันของเคอร์เซอร์
Ndd หรือ dNd ลบบรรทัดจำนวน N บรรทัดนับจากบรรทัดที่เคอร์เซอร์อยู่ในปัจจุบัน
u ยกเลิกการดำเนินการครั้งก่อนหน้า
yy สำเนาบรรทัดที่เคอร์เซอร์อยู่ปัจจุบันและเก็บในบัฟเฟอร์
Nyy หรือ yNy สำเนาบรรทัดจำนวน N บรรทัดนับจากที่เคอร์เซอร์อยู่ปัจจุบันและเก็บในบัฟเฟอร์
p แปะบรรทัดที่สำเนาไว้ในบัฟเฟอร์ที่ตำแหน่งปัจจุบันของเคอร์เซอร์
คำสั่ง emacs
โปรแกรม emacs เป็นโปรแกรมแก้ไขไฟล์ข้อความที่ได้รับความนิยมมากกว่าโปรแกรม vi เพราะไม่ต้องเปลี่ยนโหมดการทำงานไปๆมาๆ โปรแกรม emacs สามารถปรับแต่งได้อย่างมากและมีคุณสมบัติต่างๆมากมาย ในเบื้องต้นโปรแกรม emacs ถูกออกแบบมาให้ทำงานในแบบคอนโซล แต่ต่อมาได้รับการปรับปรุงให้สามารถใช้งานภายใต้ GUI ด้วย
โปรแกรม emacs มีความสามารถต่างๆมากมายนอกจากการเป็นโปรแกรมแก้ไขไฟล์ข้อความแล้วเรายังสามารถใช้โปรแกรม emacs กับเรื่องอื่นๆได้ด้วย เช่น ในการเขียน email หรือ ใช้ในการหาข้อผิดพลาดของโปรแกรม (debugging) เป็นต้น แทนที่จะใช้การเปลี่ยนโหมดไปมาระหว่างโหมดรับคำสั่ง (command mode)และโหมดแก้ไขข้อความ (insert mode) เหมือนโปรแกรม vi โปรแกรม emacs ใช้คีย์ Ctrl และคีย์ Alt หรือ คีย์ Esc สำหรับการเรียกใช้คำสั่งพิเศษ
คีย์ที่สำคัญที่ใช้ในการ เปิด/ปิด โปรแกรม และ การ อ่าน/เขียน ไฟล์ มีดังนี้
emacs myfile เรียกใช้งานโปรแกรม emacs เพื่อแก้ไขไฟล์ myfile
CTRL-x ตามด้วย i แทรกพรอมท์เพื่อเรียกไฟล์อื่นที่ตำแหน่งปัจจุบัน
CTRL-x ตามด้วย s บันทึกทุกไฟล์ที่เปิดอยู่
CTRL-x ตามด้วย CTRL-w เขียนข้อมูลลงในไฟล์และถามให้ใส่ชื่อไฟล์
CTRL-x ตามด้วย CTRL-s บันทึกไฟล์ปัจจุบัน
CTRL-x ตามด้วย CTRL-c ออกจากโปรแกรม emacs โดยถามให้บันทึกไฟล์ที่มีการแก้ไข
เราสามารถเรียนรู้ emacs ได้จากคู่มือการใช้งาน โดยเราสามารถเรียกคู่มือการใช้งานได้ด้วยคีย์ Ctrl -h ตามด้วยพิมพ์ t เพื่อเปิดคู่มือการใช้งาน
ตัวอย่างคีย์ที่ใช้ในการเปลี่ยนตำแหน่งเคอร์เซอร์ในโปรแกรม emacs
ลูกศร ใช้ในการเลื่อนเคอร์เซอร์
CTRL-n เลื่อนลง 1 บรรทัด
CTRL-p เลื่อนขึ้น 1 บรรทัด
CTRL-f เลื่อนไปข้างหน้า(ทางขวา) 1 ตัวอักษร
CTRL-b เลื่อนไปด้านหลัง(ทางซ้าย) 1 ตัวอักษร
CTRL-a เลื่อนไปที่ต้นบรรทัด
CTRL-e เลื่อนไปที่ท้ายบรรทัด
Alt(หรือ Esc)-f เลื่อนไปที่อักษรแรกของคำถัดไป
Alt(หรือ Esc)-b เลื่อนไปที่อักษรแรกของคำก่อนหน้า
Alt(หรือ Esc)-< เลื่อนไปที่ต้นไฟล์
Alt(หรือ Esc)-g-g-n เลื่อนไปที่บรรทัดที่ n (หรือจะใช้คำสั่ง Esc-x
Goto-Line n)
Alt(หรือ Esc)-> เลื่อนไปที่ท้ายไฟล์
CTRL-v หรือ ปุ่ม Page Down เลื่อนไปหน้าถัดไป
Alt(หรือ Esc)-v หรือ ปุ่ม Page Up เลื่อนไปหน้าก่อน
CTRL-l รีเฟรชและจัดกลางจอ
คีย์สำคัญที่ใช้ในการค้นหาข้อความในโปรแกรม emacs มีดังนี้
CTRL-s ค้นหาถัดไปจากตำแหน่งปัจจุบัน
CTRL-r ค้นหาย้อนหลังจากตำแหน่งปัจจุบัน
คีย์สำคัญที่ใช้ในการแก้ไข เพิ่ม หรือ ลบข้อความใน emacs มีดังนี้
CTRL-o แทรกบรรทัดว่าง
CTRL-d ลบตัวอักษรที่ตำแหน่งปัจจุบัน
CTRL-k ลบส่วนที่เหลือของบรรทัด
CTRL- ยกเลิกการดำเนินการล่าสุด
CTRL- (ตามด้วย space หรือ CTRL-@) เลือกข้อความทั้งหมดก่อนหน้าตำแหน่งปัจจุบบันของเคอร์เซอร์
CTRL-w ลบข้อความที่เลือกและเก็บในบัฟเฟอร์
คำสั่ง sed
sed เป็นเครื่องมือในการแก้ไขไฟล์ข้อความ (text file) ที่กินทรัพยากรน้อยมากและทำงานได้เร็วมาก ในกรณีปรกติเราสามารถใช้โปรแกรมแก้ไขไฟล์ข้อความ (text editor) ที่เราถนัดทั้งในการแก้ไขข้อความหรือเขียนโปรแกรม แต่โปรแกรมแก้ไขไฟล์ข้อความเหล่านั้นใช้ทรัพยากรของระบบเยอะกว่า sed มาก การใช้งาน sed จะไม่เหมือนกับโปรแกรมแก้ไขข้อความที่มีการเปิดหน้าจอขึ้นมาพร้อมกับมีเครื่องมือต่างๆให้มากมาย แต่การใช้ sed จะเป็นเหมือนการใช้คำสั่ง command ตามปรกติ นั่นจึงทำให้ sed กินทรัพยากรน้อยและทำงานได้เร็ว ดังนั้นในกรณีที่เราต้องการแก้ไขข้อความในสถานการณ์ที่ไม่ปรติ เช่น ในระหว่างที่บู๊ตระบบ โปรแกรมแก้ไขข้อความเหล่านั้นจะทำงานช้ามากหรือถึงกับทำงานไม่ได้เลย ดังนั้นการใช้ sed เป็นจะช่วยเราได้มาก
sed ย่อมาจาก stream editorเป็นเครื่องมือในการจัดการไฟล์ข้อความที่มีให้ใช้มาตั้งแต่สมัยระบบปฏิบัติการยูนิกซ์เพื่อใช้ในการจัดการกับไฟล์ข้อความ sed ทำงานโดยการอ่านข้อความเข้ามาในรูปแบบของ text stream แล้วจัดการค้นหา แก้ไข แทนที่ ข้อความตามที่เรากำหนด จากนั้นจึงส่งผลลัพธ์ออกเป็น text stream ออกไป
ภาพแสดงการทำงานของ sed
รูปแบบใช้งาน sed คือ sed -e command filename โดย -e หมายถึงการใช้โหมดแก้ไข (edit) command คือคำสั่งที่เราต้องการใช้งานสามารถระบุได้มากกว่า 1 คำสั่ง และ filename คือชื่อไฟล์ข้อความที่เราต้องการแก้ไข ในกรณีที่ใช้คำสั่งเดียวเราไม่ต้องระบุ -e ก็ได้
อีกรูปแบบของการใช้งาน sed คือ เราเขียนคำสั่งเป็นไฟล์สคริปไว้แล้วเรียกไฟล์สคริปนั้นมาใช้งาน คือ “sed -f scriptfile filename” โดย -f หมายถึงการใช้โหมดสคริป และ scriptfile คือชื่อไฟล์สคริปที่เราสร้างไว้
ตัวอย่างการใช้งาน sed
sed s/originaltext/newtext/ filename เป็นการแทนที่ข้อความแรกสุดที่พบ (originaltext) ด้วยข้อความใหม่ (newtext)
sed s/originaltext/newtext/g filename เป็นการแทนที่ทุกข้อความ (originaltext) ที่พบใน 1 บรรทัดด้วยข้อความใหม่ (newtext)
sed 1,3s/originaltext/newtext/g filename เป็นการแทนที่ทุกข้อความ (originaltext) ที่พบในบรรทัดที่ 1 -3 ด้วยข้อความใหม่ (newtext)
sed -i s/originaltext/newtext/g filename เป็นการบันทึกผลลัพธ์ในไฟล์เดิม (การใช้ออปชั่น -i จะเป็นการเขียนทับไฟล์เดิมและไม่สามารถย้อนกลับได้ ดังนั้นจึงควรจะเขียนลงไฟล์ใหม่แล้วค่อยนำไปใช้หรือทำสำเนาไฟล์เก่าไว้ก่อน)
sed s/originaltext/newtext/g filename1 > filename2 เป็นการบันทึกผลลัพธ์ในไฟล์ใหม่
ตัวอย่างการใช้งาน sed แบบหลายคำสั่ง ในตัวอย่างนี้จะเป็นการแทนที่เลขเดือนด้วยชื่อเดือน และใช้เครื่องหมาย \ ในการต่อบรรทัดเพื่อบอกว่าเป็นคำสั่งชุดเดียวกัน
sed -e ‘s/01/JAN/’ -e ‘s/02/FEB/’ -e ‘s/03/MAR/’ -e ‘s/04/APR/’ -e ‘s/05/MAY/’ \
-e ‘s/06/JUN/’ -e ‘s/07/JUL/’ -e ‘s/08/AUG/’ -e ‘s/09/SEP/’ -e ‘s/10/OCT/’ \
-e ‘s/11/NOV/’ -e ‘s/12/DEC/’
ภาพแสดงคำสั่ง sed
คำสั่ง awk
awk เป็นคำสั่งที่ใช้ในการส่งออกข้อความจากไฟล์ข้อความ โดยมากจะใช้ในการออกรายงาน awk ถูกเขียนขึ้นในปี 1970 โดย Bell Labs โดยผู้เขียนคือ Alfred Aho, Peter Weinberger, and Brian Kernighan จึงเอาตัวอักษรแรกของนามสกุลมาตั้งเป็นชื่อโปรแกรม ความเก่งของโปรแกรม awk คือความสามารถในการจัดการข้อความที่มีลักษณะเป็นตารางดังอย่างด้านล่างที่รูปแบบข้อมูลแบ่งออกเป็นฟิลด์ โดยแต่ละฟิลด์คั่นด้วย : และแต่ละบรรทัดมีจำนวนฟิลด์เท่ากัน awk จะอ่านข้อมูลเข้ามาทำงานทีละบรรทัด และเราใช้ออปชั่น -F ในการกำหนดตัวคั่นฟิลด์ เช่น -F:
ภาพแสดงตัวอย่างไฟล์ที่ข้อมูลมีลักษณะคล้ายตาราง
รูปแบบการใช้งานของ awk คือ awk command var=value filename โดย command คือคำสั่งที่เรากำหนด var=value คือ ตำแหน่งของฟิลด์โดยระบุเป็น $n โดย n คือลำดับของฟิลด์จากซ้ายไปขวา
อีกรูปแบบของการใช้งาน awk คือ เราเขียนคำสั่งเป็นไฟล์สคริปไว้แล้วเรียกไฟล์สคริปนั้นมาใช้งาน คือ awk -f scriptfile var=value file โดย -f หมายถึงการใช้โหมดสคริป และ scriptfile คือชื่อไฟล์สคริปที่เราสร้างไว้
ตัวอย่างการใช้งาน awk
awk ‘{ print $0 }’ /etc/passwd แสดงข้อความทั้งหมดในไฟล์
awk -F: ‘{ print $1 }’ /etc/passwd พิมพ์เฉพาะฟิลด์แรกของทุกบรรทัด
awk -F: ‘{ print $1 $7 }’ /etc/passwd พิมพ์เฉพาะฟิลด์แรกและฟิลด์ที่ 7 ของทุกบรรทัด
ภาพแสดงการใช้คำสั่ง awk