สมมติว่าฉันมีบรรทัดที่ฉันต้องการเพิ่มลงในไฟล์โดยไม่ต้องเปิดโปรแกรมแก้ไข
ฉันจะต่อท้ายบรรทัดนี้ได้อย่างไร
alias list='ls -cl --group-directories-first'
ไฟล์นี้
config.fish
สมมติว่าฉันมีบรรทัดที่ฉันต้องการเพิ่มลงในไฟล์โดยไม่ต้องเปิดโปรแกรมแก้ไข
ฉันจะต่อท้ายบรรทัดนี้ได้อย่างไร
alias list='ls -cl --group-directories-first'
ไฟล์นี้
config.fish
คำตอบ:
คุณสามารถผนวกบรรทัดของข้อความไปยังแฟ้มโดยใช้>>ผู้ประกอบการ:
echo "hello world" >> my_file.txt
หรือในกรณีของคุณ
echo "alias list='ls -cl --group-directories-first'" >> config.fish
-iจะอัปเดตไฟล์ (มิฉะนั้นจะพิมพ์ผลลัพธ์เป็น stdout) $คือ regex ที่จะตรงกับจุดสิ้นสุดของไฟล์และต่อaท้ายข้อความต่อไปนี้เป็นชื่อไฟล์
echo "hello world" >> my_file.txtไม่ได้สร้างบรรทัดสุดท้ายใหม่ด้วยHWแต่เพิ่มลงในสตริงของบรรทัดสุดท้าย
HW@timo คืออะไร
echoเพิ่มตัวแบ่งบรรทัด (ทำให้เป็นเส้นตรงข้ามกับตัวละครเพียงไม่กี่ตัว) -nคุณสามารถปิดแบ่งบรรทัดในตอนท้ายด้วย
มีวิธีการเพิ่มเติมในการต่อท้ายไฟล์โดยไม่ต้องเปิดโปรแกรมแก้ไขข้อความ
tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fishเมื่อเพิ่มคำตอบของ Stefanoคุณยังสามารถใช้cat:
ใช้ heredoc:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'หมายถึง "ทำสิ่งต่อไปนี้เป็นอินพุตจนกว่าคุณจะถึงบรรทัดที่เป็นเพียงแค่EOF" คำพูดหมายถึงการป้อนข้อมูลอย่างแท้จริง
หรือการป้อนบรรทัดบน stdin:
$ cat >> config.fish
จากนั้นวางหรือพิมพ์ในบรรทัดกดEnterเพื่อไปที่บรรทัดใหม่จากนั้นกด Ctrl + D เพื่อทำเครื่องหมายสิ้นสุด
>ไฟล์จะถูกตัดทอน สำหรับคำสั่งที่ปลอดภัยยิ่งขึ้นคุณสามารถใช้ sed:sed -i '$a hello world' filename