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 -eecho 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.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments