ฉันจะคัดลอกไฟล์ขนาดยักษ์สองสามบรรทัดแรกและเพิ่มบรรทัดข้อความที่ท้ายไฟล์โดยใช้คำสั่ง Linux ได้อย่างไร
ฉันจะคัดลอกไฟล์ขนาดยักษ์สองสามบรรทัดแรกและเพิ่มบรรทัดข้อความที่ท้ายไฟล์โดยใช้คำสั่ง Linux ได้อย่างไร
คำตอบ:
head
คำสั่งจะได้รับเป็นครั้งแรกที่n
สาย รูปแบบต่างๆ ได้แก่ :
head -7 file
head -n 7 file
head -7l file
ซึ่งจะได้รับ 7 บรรทัดแรกของไฟล์ที่เรียกว่า"file"
. คำสั่งที่จะใช้ขึ้นอยู่กับเวอร์ชันของhead
ไฟล์. Linux จะทำงานร่วมกับตัวแรก
ในการต่อท้ายบรรทัดต่อท้ายไฟล์เดียวกันให้ใช้:
echo 'first line to add' >>file
echo 'second line to add' >>file
echo 'third line to add' >>file
หรือ:
echo 'first line to add
second line to add
third line to add' >>file
ทำในการตีหนึ่ง
ดังนั้นการผูกแนวคิดทั้งสองนี้เข้าด้วยกันหากคุณต้องการรับ 10 บรรทัดแรกของinput.txt
ไฟล์output.txt
และต่อท้ายบรรทัดที่มี"="
อักขระห้าตัวคุณสามารถใช้สิ่งต่อไปนี้:
( head -10 input.txt ; echo '=====' ) > output.txt
ในกรณีนี้เราจะดำเนินการทั้งสองอย่างใน sub-shell เพื่อรวมสตรีมเอาต์พุตให้เป็นหนึ่งซึ่งจะใช้ในการสร้างหรือเขียนทับไฟล์เอาต์พุต
ฉันสมมติว่าสิ่งที่คุณพยายามจะบรรลุคือการแทรกบรรทัดหลังจากสองสามบรรทัดแรกของไฟล์ข้อความ
head -n10 file.txt >> newfile.txt
echo "your line >> newfile.txt
tail -n +10 file.txt >> newfile.txt
หากคุณไม่ต้องการเว้นบรรทัดจากไฟล์ให้ข้ามส่วนท้าย
(head -n10 file.txt ; echo "Some stuff" ; tail -n +10 file.txt) > newfile.txt
สองสามบรรทัดแรก: man head
.
ต่อท้ายบรรทัด: ใช้ตัว>>
ดำเนินการ (?) ใน Bash:
echo 'This goes at the end of the file' >> file
head -n 100 yourfile.csv > shrunkfile.csv && echo 'morelines' >> shrunkfile.csv