Trong Bash, có nhiều cách để nối văn bản vào tệp. Bài viết này giải thích một số trong số chúng.
Để nối văn bản vào một tệp, bạn cần có quyền ghi vào tệp đó. Nếu không, bạn sẽ nhận được lỗi bị từ chối cho phép.
Nối vào tệp bằng Toán tử chuyển hướng ( >>
)
Chuyển hướng cho phép bạn nắm bắt đầu ra từ một lệnh và gửi nó dưới dạng đầu vào cho một lệnh hoặc tệp khác. Toán tử >>
chuyển hướng gắn thêm đầu ra vào một tập tin nhất định.
Có một số lệnh mà bạn có thể sử dụng để in văn bản ra đầu ra tiêu chuẩn và chuyển hướng nó đến tệp, với echo
và printf
là những lệnh được sử dụng nhiều nhất.
Để nối văn bản vào tệp, hãy chỉ định tên tệp sau toán tử chuyển hướng:
echo "this is a new line" >> file.txt
Khi được sử dụng với tùy chọn -e
, echo
lệnh sẽ diễn giải các ký tự thoát ra sau dấu gạch chéo ngược, chẳng hạn như dòng mới \n
:
echo -e "this is a new line \nthis is another new line" >> file.txt
Để tạo ra đầu ra phức tạp hơn, hãy sử dụng printf
lệnh cho phép bạn chỉ định định dạng của đầu ra:
printf "Hello, I'm %s.\n" $USER >> file.txt
Một cách khác để nối văn bản vào tệp là sử dụng tài liệu Đây (Heredoc). Nó là một kiểu chuyển hướng cho phép bạn chuyển nhiều dòng đầu vào cho một lệnh.
Ví dụ: bạn có thể chuyển nội dung vào cat
lệnh và nối nó vào một tệp:
cat << EOF >> file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF
Bạn có thể nối đầu ra của bất kỳ lệnh nào vào một tệp. Đây là một ví dụ với lệnh date
:
date +"Year: %Y, Month: %m, Day: %d" >> file.txt
Khi thêm vào một tệp bằng cách sử dụng chuyển hướng, hãy cẩn thận không sử dụng toán tử >
để ghi đè lên một tệp quan trọng hiện có.
Nối vào tệp bằng lệnh tee
tee
là một tiện ích dòng lệnh trong Linux đọc từ đầu vào tiêu chuẩn và ghi vào cả đầu ra tiêu chuẩn và một hoặc nhiều tệp cùng một lúc.
Theo mặc định, lệnh tee
ghi đè lên tệp được chỉ định. Để thêm đầu ra cho việc sử dụng tập tin tee
với -a
( --append
):
echo "this is a new line" | tee -a file.txt
Nếu bạn không muốn tee
ghi vào đầu ra chuẩn, hãy chuyển hướng nó đến /dev/null
:
echo "this is a new line" | tee -a file.txt >/dev/null
Ưu điểm của việc sử dụng lệnh tee
trên toán tử >>
là tee
cho phép bạn nối văn bản vào nhiều tệp cùng một lúc và ghi vào tệp do người dùng khác sở hữu cùng với sudo
.
Để nối văn bản vào một tệp mà bạn không có quyền ghi, hãy thêm vào sudo
trước tee
như được hiển thị bên dưới:
echo "this is a new line" | sudo tee -a file.txt
tee
nhận đầu ra của echo, nâng cấp quyền sudo và ghi vào tệp.
Để nối văn bản vào nhiều tệp, hãy chỉ định các tệp làm đối số cho tee
:
echo "this is a new line" | tee -a file1.txt file2.txt file3.txt
Phần kết luận
Trong Linux, để nối văn bản vào tệp, hãy sử dụng toán tử >>
chuyển hướng hoặc lệnh tee
.
Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.