คำถามติดแท็ก cut

สำหรับคำถามเกี่ยวกับการตัดโปรแกรมตัวกรองซึ่งแยกฟิลด์หรือคอลัมน์ของอินพุตแต่ละบรรทัด ใช้แท็กนี้สำหรับคำถามเกี่ยวกับการตัดเองหรือคำถามเกี่ยวกับปัญหาที่เกิดจากการใช้ยูทิลิตี้การตัด

4
วิธีกำหนดตัวคั่น 'tab' ด้วย 'cut' ใน BASH
นี่คือตัวอย่างของการใช้cutเพื่อแบ่งอินพุตลงในฟิลด์โดยใช้ตัวคั่นช่องว่างและการรับฟิลด์ที่สอง: cut -f2 -d' ' ตัวคั่นสามารถกำหนดเป็นแท็บแทนที่จะเว้นวรรคได้อย่างไร
215 bash  cut 


5
แทนที่ช่องว่างหลายช่องด้วยช่องว่างโดยใช้ 'tr' เท่านั้น
ฉันมีไฟล์f1.txt: ID Name 1 a 2 b 3 g 6 f จำนวนช่องว่างไม่คงที่ วิธีที่ดีที่สุดในการแทนที่ช่องว่างสีขาวทั้งหมดด้วยช่องว่างเดียวใช้เพียงtrใด นี่คือสิ่งที่ฉันมี: cat f1.txt | tr -d " " แต่ผลลัพธ์คือ: IDName 1a 2b 3g 6f แต่ฉันต้องการให้มันเป็นเช่นนี้: ID Name 1 a 2 b 3 g 6 f sedโปรดลองและหลีกเลี่ยง
71 shell  cut  tr 

7
รับอักขระ X ตัวแรกจากคำสั่ง cat?
ฉันมีไฟล์ข้อความที่ฉันส่งออกไปยังตัวแปรในเชลล์สคริปต์ของฉัน ฉันต้องการแค่ 50 ตัวอักษรแรกเท่านั้น ฉันลองใช้แล้วcat ${filename} cut -c1-50แต่ได้รับมากกว่า 50 ตัวแรก? อาจเกิดจากการcutมองหาบรรทัด (ไม่แน่ใจ 100%) ในขณะที่ไฟล์ข้อความนี้อาจเป็นหนึ่งในสตริงยาว - มันขึ้นอยู่กับ มียูทิลิตี้ภายนอกที่ฉันสามารถใช้เพื่อรับอักขระ X ตัวแรกจากcatคำสั่งหรือไม่?
41 cat  cut 

3
วิธีตัด (เลือก) ฟิลด์จากการนับบรรทัดข้อความตั้งแต่สิ้นสุด?
ฉันรู้วิธีเลือกเขตข้อมูลจากบรรทัดโดยใช้คำสั่ง cut ตัวอย่างเช่นให้ข้อมูลต่อไปนี้: a,b,c,d,e f,g,h,i,j k,l,m,n,o คำสั่งนี้: cut -d, -f2 # returns the second field of the input line ผลตอบแทน: b g l คำถามของฉัน: ฉันจะเลือกเขตข้อมูลที่สองนับจากท้ายได้อย่างไร ในตัวอย่างก่อนหน้าผลลัพธ์จะเป็น: d i n

2
การนับจำนวนคำในไฟล์ข้อความ
ฉันมีไฟล์ข้อความที่มีทวีตและฉันจำเป็นต้องนับจำนวนครั้งที่มีการกล่าวถึงคำในทวีต ตัวอย่างเช่นไฟล์ประกอบด้วย: Apple iPhone X is going to worth a fortune The iPhone X is Apple's latest flagship iPhone. How will it pit against it's competitors? และสมมติว่าฉันต้องการนับกี่ครั้งที่คำว่า iPhone ถูกกล่าวถึงในไฟล์ ดังนั้นนี่คือสิ่งที่ฉันได้ลอง cut -f 1 Tweet_Data | grep -i "iPhone" | wc -l มันใช้งานได้จริง แต่ฉันสับสนเกี่ยวกับคำสั่ง 'wc' ในยูนิกซ์ อะไรคือความแตกต่างถ้าฉันลองทำสิ่งที่ชอบ: cut -f 1 Tweet_Data …

3
อะไรคือความแตกต่างที่แน่นอนระหว่าง awk และตัดด้วย grep? [ปิด]
เรารู้ว่าเราสามารถรับคอลัมน์ที่สองของบรรทัดที่เราต้องการจากไฟล์โดยใช้เทคนิคทั้งสองนี้: awk '/WORD/ { print $2 }' filename หรือ grep WORD filename| cut -f 2 -d ' ' คำถามของฉันคือ: อะไรคือความแตกต่างระหว่างสองคำสั่งด้านบน? อันไหนมีประสิทธิภาพดีที่สุด? อะไรคือข้อดีของการใช้awkเกินกว่าcutและในทางกลับกัน? ตัวเลือกอะไรที่awkทำให้เรามีcutทางกลับกัน?
30 awk  grep  performance  cut 

11
คำสั่งพิมพ์เฉพาะอักขระ 3 ตัวสุดท้ายของสตริง
ฉันรู้ว่าcutคำสั่งสามารถพิมพ์nอักขระตัวแรกของสตริง แต่จะเลือกnอักขระตัวสุดท้ายได้อย่างไร? หากฉันมีสตริงที่มีจำนวนอักขระผันแปรฉันจะพิมพ์อักขระสามตัวสุดท้ายของสตริงได้อย่างไร เช่น. เอาต์พุต "ไม่ จำกัด " ที่ต้องการคือ "ted" จำเป็นต้องใช้เอาต์พุต "987654" คือ "654" จำเป็นต้องใช้เอาต์พุต "123456789" คือ "789"

8
การขยายท่อการเลื่อนหรือการเพิ่มประสิทธิภาพมีประสิทธิภาพมากขึ้นหรือไม่?
ฉันกำลังพยายามหาวิธีที่มีประสิทธิภาพมากที่สุดในการวนซ้ำค่าบางค่าซึ่งเป็นค่าที่สอดคล้องกันซึ่งอยู่ห่างกันในรายการคำที่คั่นด้วยช่องว่าง (ฉันไม่ต้องการใช้อาร์เรย์) ตัวอย่างเช่น, list="1 ant bat 5 cat dingo 6 emu fish 9 gecko hare 15 i j" ดังนั้นฉันต้องการที่จะสามารถวนซ้ำในรายการและเข้าถึง 1,5,6,9 และ 15 เท่านั้น แก้ไข:ฉันควรทำให้ชัดเจนว่าค่าที่ฉันพยายามรับจากรายการไม่ต้องแตกต่างในรูปแบบจากส่วนที่เหลือของรายการ สิ่งที่ทำให้พวกเขาพิเศษเป็นเพียงตำแหน่งของพวกเขาในรายการ (ในกรณีนี้ตำแหน่ง 1,4,7 ... ) ดังนั้นรายการอาจเป็นได้1 2 3 5 9 8 6 90 84 9 3 2 15 75 55แต่ฉันยังต้องการหมายเลขเดิม และฉันต้องการที่จะทำมันโดยสมมติว่าฉันไม่รู้ความยาวของรายการ วิธีการที่ฉันเคยคิดคือ: วิธีที่ 1 set $list …

5
วิธีรับส่วนสุดท้ายของลิงค์ http ใน Bash
ฉันมีลิงค์ http: http://www.test.com/abc/def/efg/file.jar และฉันต้องการบันทึกส่วนสุดท้าย file.jar เป็นตัวแปรดังนั้นสตริงเอาต์พุตคือ "file.jar" เงื่อนไข : ลิงค์มีความยาวต่างกันเช่น: http://www.test.com/abc/def/file.jar. ฉันลองแบบนั้น: awk -F'/' '{print $7}' แต่ปัญหาคือความยาวของ URL ดังนั้นฉันต้องการคำสั่งที่สามารถใช้สำหรับความยาว URL ใด ๆ
25 bash  shell-script  awk  cut 

5
ฉันจะใช้การตัดเพื่อคั่นด้วยช่องว่างหลายช่องได้อย่างไร
ฉันต้องการรับคอลัมน์สุดท้ายของตัวอย่างนี้: [ 3] 1.0- 2.0 sec 1.00 MBytes 8.39 Mbits/sec [ 3] 2.0- 3.0 sec 768 KBytes 6.29 Mbits/sec [ 3] 3.0- 4.0 sec 512 KBytes 4.19 Mbits/sec [ 3] 4.0- 5.0 sec 256 KBytes 2.10 Mbits/sec ... ถ้าฉันใช้ cut -d\ -f 13 ฉันเข้าใจ Mbits/sec 6.29 4.19 2.10 เพราะบางครั้งมีช่องว่างเพิ่มเติมในระหว่าง

8
วิธีใช้ grep และ cut in script เพื่อรับ URL เว็บไซต์จากไฟล์ HTML
ฉันกำลังพยายามใช้ grep และตัดเพื่อแยก URL จากไฟล์ HTML ลิงค์มีลักษณะดังนี้: <a href="http://examplewebsite.com/"> เว็บไซต์อื่น ๆ ที่มี.net, แต่ฉันคิดว่าฉันจะให้ตัดออกจากจุดที่เหมาะสมก่อน.gov >ดังนั้นฉันรู้ว่าฉันสามารถใช้ grep และตัดเพื่อตัดทุกอย่างก่อน http และหลัง. com แต่ฉันติดอยู่ในขณะนี้

4
ฉันควรใช้อะไรเมื่อตัดไม่ได้?
ฉันมีไฟล์citiesเช่นนี้: [1598] San Diego, US (inactive) [4517] St Louis, US (inactive) [6346] Orlando, US (inactive) ฉันต้องการตัดชื่อเมืองออกเพื่อที่ฉันจะได้: San Diego St Louis Orlando นี่คือสิ่งที่ดีที่สุดที่ฉันสามารถทำได้: cut -d ',' -f1 cities | cut -d ']' -f2 แต่นั่นยังทำให้ฉันมีช่องว่างหน้าชื่อ มีcutคำสั่ง like ที่ฉันสามารถใช้ที่รับตัวคั่นของอักขระหลายตัวเพื่อให้ฉันสามารถตัดต่อได้]หรือไม่?
19 command-line  cut 


6
อะไรคือ 'ฟิลด์' สำหรับคำสั่ง cut?
ตัวอย่างเช่นcutคำสั่งสามารถใช้พารามิเตอร์ -f ซึ่งเป็นไปตามman เลือกเฉพาะฟิลด์เหล่านี้ พิมพ์บรรทัดใด ๆ ที่ไม่มีอักขระตัวคั่นยกเว้นระบุ -s ตัวเลือก ในบริบทนี้เขตข้อมูลคืออะไร
16 linux  cut 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.