สมมติว่าฉันมีบรรทัดที่ฉันต้องการเพิ่มลงในไฟล์โดยไม่ต้องเปิดโปรแกรมแก้ไข
ฉันจะต่อท้ายบรรทัดนี้ได้อย่างไร
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