Android

Bash: ต่อท้ายไฟล์

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

ใน Bash มีหลายวิธีในการต่อท้ายข้อความในไฟล์ บทความนี้จะอธิบายบางส่วนของพวกเขา

ในการต่อท้ายข้อความในไฟล์คุณจะต้องมีสิทธิ์ในการเขียน มิฉะนั้นคุณจะได้รับข้อผิดพลาดถูกปฏิเสธสิทธิ์

ผนวกเข้ากับไฟล์โดยใช้ Redirection Operator ( >> )

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

มีคำสั่งจำนวนมากที่คุณสามารถใช้พิมพ์ข้อความไปยังเอาต์พุตมาตรฐานและเปลี่ยนทิศทางไปยังไฟล์โดย echo และ printf เป็นคำสั่งที่ใช้บ่อยที่สุด

ในการเพิ่มข้อความต่อท้ายไฟล์ให้ระบุชื่อไฟล์หลังจากตัวดำเนินการเปลี่ยนเส้นทาง:

echo "this is a new line" >> file.txt

เมื่อใช้กับตัวเลือก -e คำสั่ง echo ตีความอักขระที่มีเครื่องหมายแบคสแลชที่หนีเช่น newline :

echo -e "this is a new line \nthis is another new line" >> file.txt

หากคุณต้องการสร้างเอาต์พุตที่ซับซ้อนมากขึ้นให้ใช้คำสั่ง printf ซึ่งอนุญาตให้คุณระบุการจัดรูปแบบของเอาต์พุต:

printf "Hello, I'm %s.\n" $USER >> file.txt

อีกวิธีในการต่อท้ายข้อความในไฟล์คือใช้เอกสาร Here (Heredoc) มันเป็นประเภทของการเปลี่ยนเส้นทางที่ช่วยให้คุณสามารถส่งผ่านหลายบรรทัดของการป้อนคำสั่ง

ตัวอย่างเช่นคุณสามารถส่งเนื้อหาไปยังคำสั่ง cat และผนวกเข้ากับไฟล์:

cat « EOF » file.txt ไดเรกทอรีการทำงานปัจจุบันคือ: $ PWD คุณเข้าสู่ระบบในชื่อ: $ (whoami) EOF

คุณสามารถผนวกเอาต์พุตของคำสั่งใด ๆ ลงในไฟล์ นี่คือตัวอย่างที่มีคำสั่ง date :

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

เมื่อต่อท้ายไฟล์โดยใช้การเปลี่ยนเส้นทางโปรดระวังอย่าใช้ตัวดำเนินการ > เพื่อเขียนทับไฟล์ที่มีอยู่ที่สำคัญ

ผนวกเข้ากับไฟล์โดยใช้คำสั่ง tee

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

โดยค่าดีฟอลต์คำสั่ง tee เขียนทับไฟล์ที่ระบุ หากต้องการผนวกเอาต์พุตไปยังไฟล์ให้ใช้ tee ด้วยตัวเลือก -a ( --append ):

echo "this is a new line" | tee -a file.txt

echo "this is a new line" | tee -a file.txt >/dev/null

ข้อได้เปรียบของการใช้คำสั่ง tee บนตัวดำเนินการ >> คือ tee ช่วยให้คุณสามารถต่อท้ายข้อความไปยังหลายไฟล์พร้อมกันและเพื่อเขียนไปยังไฟล์ที่ผู้ใช้รายอื่นเป็นเจ้าของร่วมกับ sudo

ในการต่อท้ายข้อความในไฟล์ที่คุณไม่มีสิทธิ์เขียนให้ใส่ sudo ก่อน tee ที่แสดงด้านล่าง:

echo "this is a new line" | sudo tee -a file.txt

tee ได้รับเอาต์พุตของคำสั่ง echo ยกระดับสิทธิ์ sudo และเขียนไปยังไฟล์

หากต้องการต่อท้ายข้อความให้มากกว่าหนึ่งไฟล์ให้ระบุไฟล์เป็นอาร์กิวเมนต์ในคำสั่ง tee :

echo "this is a new line" | tee -a file1.txt file2.txt file3.txt

ข้อสรุป

ใน Linux หากต้องการต่อท้ายข้อความในไฟล์ให้ใช้โอเปอเรเตอร์การเปลี่ยนเส้นทาง >> หรือคำสั่ง tee

bash terminal