Câu trả lời:
Bạn có thể nối một dòng văn bản vào một tệp bằng cách sử dụng >>
toán tử:
echo "hello world" >> my_file.txt
hoặc trong trường hợp của bạn
echo "alias list='ls -cl --group-directories-first'" >> config.fish
Xin lưu ý các loại báo giá khác nhau .
-i
sẽ cập nhật tệp (nếu không nó sẽ chỉ in kết quả ra thiết bị xuất chuẩn), $
là biểu thức chính sẽ khớp với phần cuối của tệp và a
nối văn bản sau vào tên tệp.
echo "hello world" >> my_file.txt
không tạo ra một dòng cuối cùng mới HW
, nhưng thêm nó vào chuỗi của dòng cuối cùng.
HW
@Timo là gì?
echo
thêm dòng ngắt (làm cho nó trở thành một dòng trái ngược với chỉ một loạt các ký tự). Bạn có thể tắt ngắt dòng ở cuối với -n
.
Có rất nhiều phương pháp nối thêm vào tệp mà không cần mở trình soạn thảo văn bản, đặc biệt thông qua nhiều tiện ích xử lý văn bản có sẵn trong Ubuntu.
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
Thêm vào câu trả lời của Stefano , bạn cũng có thể sử dụng cat
:
Sử dụng một di truyền:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
có nghĩa là "lấy sau đây làm đầu vào, cho đến khi bạn đạt đến một dòng chỉ EOF
". Các trích dẫn có nghĩa là để đầu vào theo nghĩa đen.
Hoặc nhập dòng trên stdin:
$ cat >> config.fish
Sau đó dán hoặc nhập vào dòng, nhấn Enterđể đi đến một dòng mới, sau đó nhấn Ctrl + D để đánh dấu kết thúc.
>
thì tập tin sẽ cắt bớt, không nối thêm. để có lệnh an toàn hơn, bạn có thể sử dụng sed:sed -i '$a hello world' filename