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

20
วิธีการเพิ่มบรรทัดใหม่ในตอนท้ายของไฟล์?
No newline at end of fileโดยใช้ระบบการควบคุมรุ่นที่ฉันได้รับรำคาญที่เสียงเมื่อต่างกล่าวว่า ดังนั้นฉันสงสัยว่า: วิธีเพิ่มบรรทัดใหม่ที่ท้ายไฟล์เพื่อกำจัดข้อความเหล่านั้นได้อย่างไร

6
การเพิ่มบรรทัดใหม่ไปยังจุดสิ้นสุดของไฟล์คืออะไร
คอมไพเลอร์บางตัว (โดยเฉพาะ C หรือ C ++) ให้คำเตือนเกี่ยวกับ: No new line at end of file ฉันคิดว่านี่จะเป็นปัญหาเฉพาะโปรแกรมเมอร์ C แต่ github แสดงข้อความในมุมมองการส่ง: \ No newline at end of file สำหรับไฟล์ PHP ฉันเข้าใจสิ่งที่ตัวประมวลผลล่วงหน้าได้อธิบายไว้ในหัวข้อนี้แต่สิ่งนี้เกี่ยวข้องกับ PHP หรือไม่ มันเป็นinclude()สิ่งเดียวกันหรือเกี่ยวข้อง\r\nกับ\nหัวข้อvs ? จุดในการมีบรรทัดใหม่ที่ท้ายไฟล์คืออะไร
166 files  newlines 

4
เหตุใด Linux จึงใช้ LF เป็นอักขระขึ้นบรรทัดใหม่
เท่าที่ฉันรู้ทุกระบบปฏิบัติการมีวิธีที่แตกต่างในการทำเครื่องหมายจุดสิ้นสุดของบรรทัด (EOL) ระบบปฏิบัติการเชิงพาณิชย์ใช้ carriage return สำหรับ EOL (carriage return และ line feed บน Windows, carriage return บน Mac เท่านั้น) ในทางตรงกันข้าม Linux เพียงใช้ line feed สำหรับ EOL เหตุใด Linux จึงไม่ใช้ carriage return สำหรับ EOL (และเป็นตัวป้อนบรรทัดเท่านั้น)

10
จะทดสอบได้อย่างไรว่าไฟล์ใช้ CRLF หรือ LF โดยไม่ต้องดัดแปลงไฟล์?
ฉันต้องเรียกใช้คำสั่งเป็นระยะเพื่อให้แน่ใจว่าไฟล์ข้อความบางไฟล์ถูกเก็บไว้ในโหมด Linux น่าเสียดายที่dos2unixมักจะแก้ไขไฟล์ซึ่งจะทำให้ไฟล์และไฟล์บันทึกเวลาของไฟล์เลอะและทำให้เกิดการเขียนที่ไม่จำเป็น สคริปต์ที่ฉันเขียนนั้นอยู่ใน Bash ดังนั้นฉันต้องการคำตอบจาก Bash

2
ทำไม ZSH ถึงลงท้ายด้วยเครื่องหมายเปอร์เซนต์ไฮไลต์?
ฉันพบสิ่งนี้ในบางโอกาสด้วยแอพพลิเคชั่นที่หลากหลาย ฉันมักจะคิดว่าเป็นเพราะผลผลิตถูกยกเลิกก่อน (ctrl + c เป็นต้น) หรือสิ่งที่คล้ายกันและ zsh เติมอักขระบรรทัดใหม่ แต่ตอนนี้ความอยากรู้อยากเห็นได้รับสิ่งที่ดีที่สุดของฉันเพราะมันดูเหมือนจะไม่ทำอย่างนี้ zsh ทุบตี Sequenceโปรแกรมเป็นสิ่งที่ฉันดึงออกมาจากหนังสือในขณะอ่านบน Java การรับรองและเพียงแค่ต้องการที่จะดูว่ามันจะรวบรวมและวิ่ง ฉันสังเกตเห็นว่ามันไม่ได้ใช้println()วิธีการจากSystem.outแพ็คเกจ / คลาส print()แต่มันใช้เก่าธรรมดา การขาดอักขระขึ้นบรรทัดใหม่เป็นเหตุผลที่ทำให้ฉันได้รับสัญลักษณ์นี้หรือไม่?
46 bash  zsh  prompt  newlines 

9
การค้นหาไฟล์“ ไม่ใช่ไบนารี” ทั้งหมด
เป็นไปได้หรือไม่ที่จะใช้findคำสั่งเพื่อค้นหาไฟล์ "ที่ไม่ใช่ไบนารี" ทั้งหมดในไดเรกทอรี? นี่คือปัญหาที่ฉันพยายามแก้ไข ฉันได้รับไฟล์เก็บถาวรจากผู้ใช้ windows ไฟล์เก็บถาวรนี้มีซอร์สโค้ดและไฟล์ภาพ ระบบการสร้างของเราเล่นได้ไม่ดีกับไฟล์ที่มีปลายแถวของ windows ฉันมีโปรแกรมบรรทัดคำสั่ง ( flip -u) ที่จะพลิกจบบรรทัดระหว่าง * ระวังและ windows ดังนั้นฉันต้องการทำอะไรแบบนี้ find . -type f | xargs flip -u อย่างไรก็ตามหากคำสั่งนี้ทำงานกับไฟล์รูปภาพหรือไฟล์สื่อไบนารีอื่น ๆ คำสั่งนี้จะทำให้ไฟล์เสียหาย ฉันรู้ว่าฉันสามารถสร้างรายการนามสกุลไฟล์และตัวกรองด้วยสิ่งนั้นได้ แต่ฉันอยากมีบางอย่างที่ไม่พึ่งพาฉันเพื่อให้รายการนั้นเป็นปัจจุบัน ดังนั้นมีวิธีการหาไฟล์ที่ไม่ใช่ไบนารีทั้งหมดในต้นไม้ไดเรกทอรีหรือไม่ หรือมีวิธีอื่นที่ฉันควรพิจารณาหรือไม่
43 files  find  text  newlines 

4
ฉันจะลบอักขระบรรทัดใหม่ที่ท้ายไฟล์ได้อย่างไร
ให้ฉันชัดเจนเกี่ยวกับอักขระขึ้นบรรทัดใหม่: $ echo Hello > file1 ; cat file1 Hello $ echo -n Hello > file2 ; cat file2 Hello$ ที่นี่คุณจะเห็นว่าfile1มีอักขระขึ้นบรรทัดใหม่ในตอนท้ายขณะที่file2ยังไม่มี ตอนนี้สมมติว่าฉันเป็นหนึ่งfile: $ cat file Hello Welcome to Unix $ และฉันต้องการที่จะเพิ่มand Linuxในตอนท้ายของไฟล์จากนั้นecho " and Linux" >> fileจะถูกเพิ่มไปยังบรรทัดใหม่ แต่ฉันต้องการบรรทัดสุดท้ายเป็นUnix and Linux ดังนั้นเพื่อหลีกเลี่ยงฉันต้องการลบอักขระบรรทัดใหม่ที่ท้ายไฟล์ ดังนั้นฉันจะลบอักขระบรรทัดใหม่ได้อย่างไรในตอนท้ายของไฟล์

5
วิธีการใส่อักขระพิเศษบรรทัดใหม่ลงในไฟล์โดยใช้คำสั่ง echo และโอเปอเรเตอร์การเปลี่ยนเส้นทาง
ฉันต้องการสร้างไฟล์โดยใช้คำสั่ง echo และโอเปอเรเตอร์การเปลี่ยนเส้นทางไฟล์ควรสร้างขึ้นมาไม่กี่บรรทัด ฉันพยายามใส่ newline ด้วย "\ n" ในสตริง: echo "first line\nsecond line\nthirdline\n" > foo แต่ด้วยวิธีนี้จะไม่มีการสร้างไฟล์ที่มีสามบรรทัด แต่เป็นไฟล์ที่มีเพียงหนึ่งบรรทัดและเนื้อหาคำต่อคำของสตริง ฉันจะสร้างโดยใช้คำสั่งนี้เฉพาะไฟล์ที่มีหลายบรรทัดได้อย่างไร?

6
วิธีเพิ่มการขึ้นบรรทัดใหม่ก่อนขึ้นบรรทัดใหม่ทุกครั้ง
ฉันมีไฟล์ที่ใช้\nสำหรับบรรทัดใหม่เท่านั้น แต่ฉันต้องการให้มี\r\nสำหรับแต่ละบรรทัดใหม่ ฉันจะทำสิ่งนี้ได้อย่างไร ตัวอย่างเช่นฉันแก้ไขในการใช้ Vim :%s/\n/\r\n/gแต่ฉันต้องการใช้สคริปต์หรือแอปพลิเคชันบรรทัดคำสั่ง ข้อเสนอแนะใด ๆ ฉันพยายามค้นหาสิ่งนี้ด้วยsedหรือgrepแต่ฉันสับสนทันทีโดยวิธีแก้ปัญหาลำดับหนี (ฉันเป็นสีเขียวเล็กน้อยด้วยคำสั่งเหล่านี้) หากสนใจแอปพลิเคชันจะเกี่ยวข้องกับคำถาม / คำตอบของฉันที่นี่
28 sed  grep  newlines 

2
กำลังลบช่องว่างแท็บบรรทัดใหม่ ฯลฯ ออกจากตัวแปรหรือไม่
นี่เป็นข้อผิดพลาดที่ฉันได้รับและมันล้มเหลวเนื่องจากตัวแปรที่มีค่าควรจะเป็น 2 (ฉันได้รับสิ่งนี้โดยใช้กselect * from tabel) ฉันได้รับช่องว่างในตัวแปรนั้น + 0 != 2 ./setjobs[19]: 0: not found. ฉันจะลบช่องว่างเหล่านั้นทั้งหมดหรือขึ้นบรรทัดใหม่ออกจากตัวแปรนั้นได้อย่างไร Can tr, sedหรืออะไรความช่วยเหลือ? นี่คือสิ่งที่ฉันทำ: set_jobs_count=$(echo "set heading off; select count(*) from oppar_db where ( oppar_db_job_name, oppar_db_job_rec ) in ($var) ;" | \ sqlplus -s ${OP_ORA_USER}/${OP_ORA_PASS}@$OPERATIONAL_DB_NAME) ใช้งานได้ตามที่แนะนำ: | sed 's/[[:space:]]//g' แต่ฉันยังคงได้รับค่าเช่น: set_jobs_count= 2
25 shell  sed  tr  whitespace  newlines 

3
ขึ้นบรรทัดใหม่ในชื่อไฟล์
ฉันเข้าใจและยอมรับหลักฐานว่าการเขียนสคริปต์เชลล์1 แบบป้องกันเป็นเรื่องที่รอบคอบและในระยะยาวจะมีความยั่งยืนมากขึ้น คำตอบมากมายสำหรับคำถามเกี่ยวกับการประมวลผลข้อความที่นี่เป็นไปตามหลักการนี้โดยสร้างเป็นคำตอบที่อาจเกิดขึ้นสำหรับชื่อไฟล์นอกรีต ที่อาจมีช่องว่างขีดกลางและบรรทัดใหม่ บรรทัดใหม่ที่แพร่หลายในชื่อไฟล์เป็นอย่างไร โดยเฉพาะ: แอปพลิเคชันใด ๆ ที่สร้างชื่อไฟล์ที่มีบรรทัดใหม่เป็นค่าเริ่มต้นหรือไม่ มีสถานการณ์ใดบ้างที่ต้องการสร้างชื่อไฟล์ดังกล่าว หรือพวกเขาส่วนใหญ่เป็นตัวอย่างของข้อผิดพลาดของผู้ใช้? [1] ความหมายการวางแผนและการจัดการสถานการณ์และภาระผูกพันที่เป็นไปได้ในวงกว้างที่สุด ... คำถามที่ได้รับแรงบันดาลใจจากความคิดเห็น (ค่อนข้างน่าตำหนิ) ในคำถามนี้


3
วิธีแก้ไขข้อความ“ Hunk # 1 FAILED ที่ 1 (สิ้นสุดบรรทัดที่แตกต่างกัน)”
ฉันพยายามสร้างแพตช์ด้วยคำสั่ง git diff sourcefile >/var/lib/laymab/overlay/category/ebuild/files/thepatch.patch เมื่อฉันใช้แพทช์มันให้ฉัน $ patch -v GNU patch 2.7.5 $ /usr/bin/patch -p1 </var/lib/laymab/overlay/category/ebuild/files/thepatch.patch patching file sourcefile Hunk #1 FAILED at 1 (different line endings). Hunk #2 FAILED at 23 (different line endings). Hunk #3 FAILED at 47 (different line endings). Hunk #4 FAILED at 65 (different line …
22 git  diff  newlines  patch 

2
ทำไมปุ่ม Enter ไม่ส่ง EOL
Unix / Linux EOL คือ LF, เลื่อนบรรทัด, ASCII 10 \nลำดับหนี นี่เป็นตัวอย่างของ Python ที่จะได้รับหนึ่งปุ่มกด: import sys, tty, termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch เมื่อฉันกดEnterแป้นพิมพ์ของฉันเพื่อตอบสนองต่อตัวอย่างนี้มันจะให้\r, การคืนรถ, ASCII 13 บนวินโดวส์ , ส่งEnter CR LF == 13 10* ระวังไม่ใช่ Windows; ทำไมEnterให้ 13 …

5
เหตุใด $ anchor สุดท้ายของบรรทัดจึงไม่ทำงานกับคำสั่ง grep ถึงแม้ว่า front-of-line ^ anchor จะเป็นอย่างไร
ใหม่มากสำหรับ UNIX แต่ไม่ใหม่สำหรับการเขียนโปรแกรม การใช้ Terminal บน MacBook เพื่อวัตถุประสงค์ในการจัดการและค้นหารายการคำสำหรับการสร้างคำไขว้ฉันพยายามใช้ประโยชน์จากคำสั่ง Grep และรูปแบบที่หลากหลาย ดูเหมือนจะตรงไปตรงมา แต่การวางสายก่อนกับสิ่งที่ฉันคิดว่าควรเป็นกรณีที่ง่าย เมื่อฉันเข้า grep "^COW" masternospaces.txt ฉันได้สิ่งที่ต้องการ: รายการคำทั้งหมดที่เริ่มต้นด้วย COW แต่เมื่อฉันเข้า grep "COW$" masternospaces.txt ฉันคาดหวังว่าจะได้รับรายการคำที่ลงท้ายด้วย COW (มีคำพูดมากมาย) และไม่มีอะไรคืนเลย ไฟล์เป็นไฟล์ข้อความธรรมดาโดยมีทุกบรรทัดเพียงแค่คำ (หรือวลีคำศัพท์ที่ไม่มีช่องว่าง) ในตัวพิมพ์ใหญ่ทั้งหมด มีความคิดอะไรที่จะเกิดขึ้นที่นี่?
19 grep  newlines 

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