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

cat เป็นยูทิลิตี้ Unix มาตรฐานที่ใช้สำหรับการต่อไฟล์หรือพิมพ์ไฟล์เฉพาะบนเอาต์พุตมาตรฐาน

4
ฉันจะแสดงการเน้นไวยากรณ์บนไฟล์ได้อย่างไร?
มีตัวแปรของcatบรรทัดโค้ดที่เน้นด้วยไวยากรณ์เอาต์พุตเมื่อใช้กับไฟล์ต้นฉบับหรือไม่? แนวคิด: อาจvi[m]จะขอให้ผู้แก้ไขคนอื่นแก้ไขเนื้อหาที่เน้นไวยากรณ์ของไฟล์ที่กล่าวถึงstdoutและออกทันที

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

7
มันเป็น UUOC (ใช้แมวไร้ประโยชน์) เพื่อเปลี่ยนเส้นทางไฟล์หนึ่งไปยังอีกไฟล์หนึ่งหรือไม่?
ถ้าผมต้องการที่จะทำให้เนื้อหาของfile2ตรงกับเนื้อหาของผมเห็นได้ชัดว่าสามารถทำงานเพียงfile1cp file1 file2 แต่ถ้าผมต้องการที่จะรักษาทุกอย่างที่เกี่ยวกับการfile2 ยกเว้นเนื้อหาเจ้าของสิทธิ์คุณสมบัติการขยาย, ACL ของการเชื่อมโยงอย่างหนัก ฯลฯ ฯลฯ แล้วฉันจะไม่ต้องการที่จะทำงานcp. * ในกรณีที่ว่าผมแค่อยากจะป๋อม เนื้อหาของเข้าfile1file2 ดูเหมือนว่าต่อไปนี้จะทำ: < file1 > file2 แต่มันไม่ทำงาน file2ถูกตัดทอนเป็นไม่มีอะไรและไม่ได้เขียนถึง อย่างไรก็ตาม cat < file1 > file2 ไม่ทำงาน มันทำให้ฉันประหลาดใจว่ารุ่นแรกไม่ทำงาน รุ่นที่สองเป็น UUOC หรือไม่ มีวิธีการทำเช่นนี้โดยไม่ต้องใช้คำสั่งเพียงแค่ใช้การเปลี่ยนเส้นทาง? หมายเหตุ: ฉันทราบว่า UUOC เป็นจุดอวดความรู้มากกว่ารูปแบบการต่อต้านที่แท้จริง * ตามที่ค้นพบ tniles09 จริง ๆแล้วcp จะใช้งานได้ในกรณีนี้

6
'cat' เป็นเชลล์ในตัวหรือเป็นโปรแกรมภายนอกหรือไม่
เมื่อฉันใช้typeคำสั่งเพื่อตรวจสอบว่าcatเป็นเชลล์ในตัวหรือโปรแกรมภายนอกฉันได้รับผลลัพธ์ด้านล่าง: -$ type cat cat is hashed (/bin/cat) -$ นี่หมายความว่าcatเป็นโปรแกรมภายนอก/bin/catหรือไม่ ฉันสับสนเพราะเมื่อฉันตรวจสอบผลลัพธ์ด้านล่างechoเพื่อดูว่ามันเป็นbuilt-inโปรแกรม/bin/echo -$ type echo echo is a shell builtin -$ which echo /bin/echo -$ ดังนั้นฉันไม่สามารถใช้ตรรกะที่/bin/catจำเป็นต้องหมายถึงโปรแกรมภายนอกเพราะเสียงก้องเป็น/bin/echoแต่ยังคงเป็นในตัว แล้วฉันจะรู้ได้อย่างไรว่าcatมันคืออะไร? ในตัวหรือภายนอก?
33 bash  cat  echo  shell-builtin 

3
ฉันจะ“ แมวและติดตาม” ไฟล์ได้อย่างไร
wgetไฟล์จะถูกดาวน์โหลดตามลำดับโดย หากฉันเริ่มเปิดออกด้วยcat myfile.tar.bz2 | tar -xjอาจเป็นแกะอย่างถูกต้องหรือล้มเหลวด้วย "ไม่คาดคิด EOF" ขึ้นอยู่กับสิ่งที่เร็วขึ้น วิธี "cat และ follow" ไฟล์เช่นเนื้อหาที่ส่งออกของไฟล์ไปยัง stdout แต่ไม่ออกจาก EOF ให้หม่อม subribed ไปที่ไฟล์นั้นและทำการส่งออกส่วนใหม่ของข้อมูลออกต่อเมื่อปิดไฟล์โดย ผู้เขียนและไม่เปิดใหม่ภายใน N วินาที ฉันได้สร้างสคริปต์cat_and_followตามคำตอบของ @ arielCo ซึ่งจะยุติtailเมื่อไฟล์ไม่ถูกเปิดเพื่อการเขียนอีกต่อไป
31 files  pipe  cat  tail  open-files 

2
วิธีกำหนดเอาต์พุต cat ของสคริปต์ bash ให้กับตัวแปรในสคริปต์อื่น
ฉันมีสคริปต์ทุบตีที่สร้างเอาต์พุต cat เมื่อมีการโต้แย้ง ฉันยังมีสคริปต์ทุบตีอีกตัวหนึ่งที่เรียกใช้งานสคริปต์ทุบตีแรกด้วยอาร์กิวเมนต์ที่ฉันต้องการสร้างผลงาน cat ด้วย ฉันจะเก็บ cat เอาต์พุตที่สร้างโดยสคริปต์ทุบตีแรกในตัวแปรได้อย่างไร

12
ฉันจะ "แมว" ไฟล์และลบบรรทัดที่มีความคิดเห็นได้อย่างไร
ฉันต้องการทราบว่ามีวิธีที่ฉันสามารถcatยื่นphp.iniและลบบรรทัดทั้งหมดที่ขึ้นต้นด้วย; ตัวอย่างเช่นหากไฟล์มีสิ่งนี้: ; - Show all errors, except for notices ; ;error_reporting = E_ALL & ~E_NOTICE ; ; - Show only errors ; ;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; ; - Show all errors except for notices ; error_reporting = E_ALL & ~E_NOTICE และฉันรันคำสั่งที่ถูกต้องcat | {remove comments command}จากนั้นฉันก็จะจบลงด้วย: error_reporting = E_ALL & …

1
ต่อท้ายข้อความเดียวกันกับไฟล์จำนวนมากโดยใช้ cat หรือ echo?
ฉันจะเขียนเนื้อหาเดียวกันไปยังไฟล์ข้อความจำนวนมากโดยใช้catหรือechoในคำสั่งเดียวได้อย่างไร ตัวอย่างเช่นฉันต้องการเขียน "hello" ไปที่ file1 และ file2 ฉันเหนื่อย: echo "hello" >> file1 file2 แต่มันไม่ทำงาน ฉันจะทำมันได้อย่างไร

2
วิธีไพพ์ไฟล์ระยะไกลเพื่อ stdout ผ่าน scp หรือ sftp?
ใช้ ssh, มันง่ายต่อการพิมพ์เนื้อหาของไฟล์โดยใช้ ssh host 'cat file.txt' เมื่อ ssh ถูกปิดใช้งานและเปิดใช้งาน SFTP เท่านั้นการเรียกใช้คำสั่งก่อนหน้านี้จะทำให้เกิดข้อผิดพลาดต่อไปนี้: บริการนี้อนุญาตการเชื่อมต่อ sftp เท่านั้น เพื่อแก้ไขปัญหานี้ฉันสามารถสร้างไฟล์ชั่วคราวโดยใช้scpหรือsshfs(ดังที่แสดงด้านล่าง) แต่มันดูน่าเกลียดจริงๆ วิธีที่เหมาะสมในการพิมพ์เนื้อหาของไฟล์ระยะไกลคือเมื่อ SSH ถูกปิดใช้งาน? mkdir tmpdir sshfs host: tmpdir cat tmpdir/file.txt fusermount -u tmpdir # This does not work! scp -v host:file.txt . shows # "Sink: This service allows sftp connections only." scp host:file.txt …
28 ssh  scp  cat  sftp 

8
คำสั่งไปยังเนื้อหาไฟล์ที่ส่งออกไปยัง stdout?
ฉันรู้ว่าcatสามารถทำสิ่งนี้ได้ แต่จุดประสงค์หลักของมันคือการต่อข้อมูลแทนที่จะแสดงเนื้อหา ฉันยังรู้เกี่ยวกับlessและmoreแต่ฉันกำลังมองหาบางอย่างที่เรียบง่าย ( ไม่ใช่เพจเจอร์ ) ที่เพิ่งส่งออกเนื้อหาของไฟล์ไปยังเทอร์มินัลและมันถูกสร้างขึ้นมาเพื่อสิ่งนี้โดยเฉพาะหากมีสิ่งนั้น
28 cat  less  stdout 

2
วิธีที่เร็วที่สุดในการเชื่อมไฟล์เข้าด้วยกัน
ฉันมีไฟล์ 10k + รวมกว่า 20GB ที่ฉันต้องต่อกันเป็นไฟล์เดียว มีวิธีที่เร็วกว่า cat input_file* >> out ? วิธีที่ต้องการจะเป็นคำสั่ง bash, Python เป็นที่ยอมรับเช่นกันหากไม่ช้ากว่านี้มาก
25 bash  shell-script  files  cat 

5
ความแตกต่างระหว่าง cat และ '>' ถึงศูนย์ออกไฟล์
คำสั่งทั้งสองนี้แตกต่างกันหรือไม่เกี่ยวกับวิธีที่พวกเขาไปเกี่ยวกับการลบไฟล์เป็นศูนย์หรือไม่? วิธีหลังเป็นวิธีที่สั้นกว่าในการทำอดีตหรือไม่? เกิดอะไรขึ้นเบื้องหลัง ทั้งสอง $ cat /dev/null > file.txt $ > file.txt ผล -rw-r--r-- 1 user wheel 0 May 18 10:33 file.txt

9
คำสั่งให้แสดงสองสามบรรทัดแรกและสองสามบรรทัดสุดท้ายของไฟล์
ฉันมีไฟล์ที่มีหลายแถวและแต่ละแถวมีการประทับเวลาตอนเริ่มต้นเช่น [Thread-3] (21/09/12 06:17:38:672) logged message from code..... ดังนั้นฉันมักตรวจสอบ 2 สิ่งจากไฟล์บันทึกนี้ สองสามแถวแรกที่มีเงื่อนไขโกลบอลและเวลาเริ่มต้นจะได้รับด้วย ไม่กี่แถวสุดท้ายที่มีสถานะการออกพร้อมกับข้อมูลอื่น ๆ มีคำสั่งเดียวที่มีประโยชน์อย่างรวดเร็วที่สามารถให้ฉันแสดงบรรทัดแรกและสองสามบรรทัดของไฟล์ได้หรือไม่?

6
cat ไฟล์จำนวนมากเข้าด้วยกันตามลำดับที่ถูกต้อง
ฉันมีประมาณ 15,000 ไฟล์ที่มีชื่อfile_1.pdb, file_2.pdbฯลฯ ฉันสามารถแมวประมาณไม่กี่พันเหล่านี้ในการสั่งซื้อโดยการทำ: cat file_{1..2000}.pdb >> file_all.pdb อย่างไรก็ตามหากฉันทำสิ่งนี้กับไฟล์ 15,000 ไฟล์ฉันจะได้รับข้อผิดพลาด -bash: /bin/cat: Argument list too long ฉันได้เห็นปัญหานี้ได้รับการแก้ไขโดยการทำfind . -name xx -exec xxแต่จะไม่รักษาลำดับที่ไฟล์เข้าร่วม ฉันจะบรรลุสิ่งนี้ได้อย่างไร

2
cat ให้ข้อผิดพลาดที่แตกต่างกันเมื่อเปิดไฟล์ที่ไม่มีอยู่
คำสั่งทั้งสองต่อไปนี้พยายามเปิดไฟล์ที่ไม่มีอยู่fooแต่ข้อความแสดงข้อผิดพลาดแตกต่างกันเล็กน้อย อะไรคือเหตุผล? $ cat foo cat: cannot open foo $ cat < foo -bash: foo: No such file or directory

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