Lệnh nối dòng vào tệp văn bản mà không cần mở trình soạn thảo


147

Giả sử tôi có một dòng mà tôi muốn thêm vào một tệp mà không cần mở trình soạn thảo.

Làm thế nào tôi có thể nối dòng này

alias list='ls -cl --group-directories-first'

vào tập tin này

config.fish

Câu trả lời:


237

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 .


25
Tôi tự sử dụng echo, nhưng hãy cẩn thận, nếu bạn chỉ định một >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
đảo ngược

12
giải thích: -isẽ 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à anối văn bản sau vào tên tệp.
đảo ngược

echo "hello world" >> my_file.txtkhô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.
Timo

HW@Timo là gì?
7wp

Có lẽ "Hello World" @ 7wp :) Đó là echothê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.
Stefano Palazzo

3

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

1

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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.