บทที่ 16

Wildcards (* , ?)

มาต่อกันอีกหนึ่งความสามารถอันโดดเด่นของ CLI กันครับ (จริงๆ ต้องบอกว่าความสามารถของ Shell) Wildcards เป็นการแทนที่ตัวอักษรด้วยสัญลักษณ์ ทำให้เราสามารถที่จะพลิกแพลงประยุกต์ใช้งาน Command-line ได้อย่างมีประสิทธิภาพมากยิ่งขึ้น ซึ่งถ้าให้อธิบายอาจจะพางงกันได้ ผมว่าไปลองดูกันที่แบบฝึกหัดกันดีกว่าครับ ขอให้คุณตั้งใจสังเกตผลลัพธ์หน่อยนะครับ

แบบฝึกหัด 16-1

 1 $ cd ~/learncli
 2 $ ls
 3 catfox.txt  colors.txt  foxcat.txt  movedir  sortcolors.txt
 4 cat.txt     copydir     fox.txt     right    toolong.txt
 5 
 6 $ ls c*
 7 $ ls *.txt
 8 $ cat *.txt > mixtext.txt
 9 $ less mixtext.txt
10 
11 $ ls *cat*.txt
12 $ ls *fox*.txt
13 $ mkdir cattxt/ foxtxt/
14 
15 $ cp *cat*.txt cattxt/
16 $ cp *fox*.txt foxtxt/
17 $ ls cattxt/
18 $ ls foxtxt/

แบบฝึกหัด 16-2

 1 $ cat > red.color
 2 red
 3 ^D
 4 
 5 $ cat > green.color
 6 green
 7 ^D
 8 
 9 $ cat > blue.color
10 blue
11 ^D
12 
13 $ ls *.color
14 $ cat *.color
15 $ cat *.color | sort -r > rgb.color
16 $ cat rgb.color

แบบฝึกหัด 16-3

 1 $ ls
 2 $ ls *.*
 3 $ ls *.txt
 4 $ ls *.color
 5 $ ls *.???
 6 $ ls *.????
 7 $ ls *.?????
 8 $ ls ???.*
 9 $ ls ????.*
10 
11 $ mkdir art/
12 $ mv *color* art/
13 $ ls
14 $ ls art/
15 
16 $ rm *.txt
17 $ ls
18 $ rm -rv *dir
19 $ ls

บทนี้เรียนรู้อะไร?

  • คุณสามารถกรองผลลัพธ์หรือคัดเลือก file หรือ directory ได้โดยใช้ * หรือ ?
  • คุณสามารถใช้สัญลักษณ์ * แทนตัวอักษรอะไรก็ได้และกี่ตัวก็ได้
  • คุณสามารถใช้สัญลักษณ์ ? แทนตัวอักษรอะไรก็ได้แต่แทนได้แค่หนึ่งตัว

เพิ่มเติม

  • สัญลักษณ์ที่ใช้สำหรับ wildcards ยังมีอีกลองค้นหาดูในอินเตอร์เน็ตครับ