7 cách để nối văn bản vào tệp trên Linux

Tác giả sysadmin, T.Một 10, 2024, 11:59:56 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

7 cách để nối văn bản vào tệp trên Linux


Hãy bổ sung thêm kiến thức về Linux của bạn. Đôi khi bạn có một tệp văn bản có nội dung hiện có và bạn cần thêm một số văn bản vào đó. May mắn thay, có một số lệnh Linux bạn có thể sử dụng để thực hiện việc này. Một số lệnh này thậm chí còn đủ mạnh để chèn văn bản vào bất kỳ đâu trong tệp của bạn.

1. Tạo một tệp văn bản trước tiên!

Để làm theo hướng dẫn, bạn nên chuẩn bị sẵn một tệp thử nghiệm để bạn có thể nối thêm các dòng và xem kết quả. Để tạo một tệp trống trên Linux, hãy chạy lệnh bên dưới:

Mã nguồn [Chọn]
touch <filename>
Thay thế <tên tệp> bằng tên của tệp. Ví dụ: chúng tôi sẽ đặt tên nó làappend.txt. Chúng ta có thể tạo tập tin bằng lệnh này:

Mã nguồn [Chọn]
touch append.txt

Để xem nội dung của tập tin, hãy chạy:

Mã nguồn [Chọn]
cat append.txt
Bạn sẽ không nhận được bất kỳ đầu ra nào vì hiện tại không có nội dung trong tệp. Bây giờ chúng ta có một tệp trống, chúng ta có thể thêm một số dòng vào đó.

1.1. Sử dụng echo để nối văn bản vào tệp

Lệnh echo chủ yếu được sử dụng để hiển thị văn bản trên terminal, nhưng bạn cũng có thể sử dụng nó để thêm văn bản vào tệp. Đây là cú pháp cơ bản:

Mã nguồn [Chọn]
echo [OPTION] [STRING]
Để sử dụng lệnh echo để thêm dòng vào tệp, bạn sẽ cần trợ giúp từ toán tử chuyển hướng (>). Để thêm dòng văn bản vào tệp bằng lệnh echo, hãy chạy:

Mã nguồn [Chọn]
echo "string" > filename
Thay thế "chuỗi" bằng văn bản thực tế bên trong dấu ngoặc kép. Làm tương tự cho "tên tệp." Ví dụ: nếu bạn muốn thêm văn bản "Đây là một tệp" vào phần bổ sung.txt, hãy chạy:

Mã nguồn [Chọn]
echo "This is a file" > append.txt
Bây giờ nếu bạn cố đọc nội dung tệp bằng lệnh cat, bạn sẽ thấy dòng này xuất hiện ở đầu ra.


Tuy nhiên, với một toán tử chuyển hướng (>), bạn sẽ không thể nối thêm dòng vào tệp. Nếu bạn cố gắng thêm một dòng khác vào tệp trên bằng lệnh tương tự, nó sẽ ghi đè nội dung hiện có của tệp. Hãy xem điều đó trong hành động. Chạy lệnh dưới đây:

Mã nguồn [Chọn]
echo "Trying to append a line to the file" > append.txt

Vậy làm thế nào để vượt qua điều này? Đơn giản. Để thêm một số văn bản vào một tệp mà không ghi đè nội dung của nó, hãy sử dụng toán tử chuyển hướng khác (>>), như sau:

Mã nguồn [Chọn]
echo "Trying to append a line to the file" >> append.txt

Lần này, dòng này sẽ được thêm vào tệp như mong đợi.

1.2. Sử dụng cat để nối văn bản vào tệp

Lệnh cat, như chúng ta đã thấy trước đây, hiển thị nội dung của một tệp trên thiết bị đầu cuối. Cú pháp cơ bản của lệnh là:

Mã nguồn [Chọn]
cat [OPTION]... [FILE]...
Không giống như lệnh echo, lệnh cat không thể trực tiếp sử dụng bất kỳ chuỗi nào làm tham số. Thay vào đó, bạn có thể nối nội dung của tệp này vào tệp khác. Để làm điều đó, hãy sử dụng lệnh như thế này:

Mã nguồn [Chọn]
cat file1 >> file2
Thay thế "file1" và "file2" bằng tên tệp thực tế. Vì vậy, trong ví dụ trước, chúng ta có thể nối thêm nội dung của một tệp khác vào tệp phụ lục.txt bằng cách sử dụng:

Mã nguồn [Chọn]
cat anotherfile.txt >> append.txt

Một cách hay khác để sử dụng lệnh cat là ghép nội dung của nhiều tệp vào một tệp duy nhất. Để làm được điều đó, hãy chỉ định tên tệp làm đối số, như thế này:

Mã nguồn [Chọn]
cat file1 file2 file3 >> file4
Giả sử bạn có ba tệp văn bản khác nhau chứa thông tin của ba nhân viên khác nhau. Bạn cần kết hợp chúng thành một tập tin duy nhất. Để làm điều đó, hãy chạy:

Mã nguồn [Chọn]
cat employee1.txt employee2.txt employee3.txt >> employees.txt

1.3. Sử dụng printf để thêm văn bản vào cuối tệp

Bạn có thể quen với printf nếu bạn có kinh nghiệm với ngôn ngữ lập trình C. Nhưng bạn có biết rằng printf cũng là một công cụ Linux không? Đúng như tên gọi, nó cho phép bạn in văn bản hoặc dữ liệu ở đầu ra tiêu chuẩn. Đây là cú pháp cơ bản:

Mã nguồn [Chọn]
printf FORMAT [ARGUMENT]...
Để nối văn bản vào tệp bằng printf, hãy chạy:

Mã nguồn [Chọn]
printf "Using printf to append text" >> append.txt

Tuy nhiên, như bạn có thể thấy, không giống như lệnh echo, không có dòng mới nào được thêm vào văn bản. Điều này có nghĩa là bạn cần phải làm điều đó bằng tay. Bạn có thể sử dụng ký tự thoát "\n" ở cuối văn bản. Vì vậy, hãy sử dụng nó ngay bây giờ.

Mã nguồn [Chọn]
printf "Using printf to append text with a new line\n" >> append.txt

Lần này, dấu nhắc đầu cuối ở một dòng mới, không giống như trường hợp trước.

1.4. Sử dụng sed

Lệnh sed, viết tắt của trình soạn thảo luồng, thực hiện chuyển đổi văn bản cơ bản trên đầu vào. Có nhiều cách để sử dụng lệnh này. Cú pháp cơ bản để nối văn bản vào tệp trông giống như sau:

Mã nguồn [Chọn]
sed [OPTION] [SCRIPT] [FILE...]
Bây giờ hãy xem cách bạn có thể thêm một dòng vào một tập tin. Để làm được điều đó, hãy làm theo định dạng lệnh dưới đây:

Mã nguồn [Chọn]
sed -i '$ a\<text to append>' <file name>
Thay thế văn bản bên trong dấu ngoặc nhọn (<>) bằng chuỗi văn bản và tên tệp của bạn tương ứng. Vì vậy, nếu bạn muốn nối thêm một dòng vào cuối tệp, hãy chạy:

Mã nguồn [Chọn]
sed -i '$ a Do not feel sed' append.txt

Tùy chọn "-i" cho hệ thống biết rằng nó sẽ sử dụng tệp được đề cập để chèn văn bản. Dấu "$" nghĩa là dòng này sẽ được thêm vào cuối file. Việc thêm "a" vào trước văn bản của chúng tôi sẽ cho hệ thống biết rằng chúng tôi muốn dòng này được thêm vào nội dung hiện có của tệp.

Một điều hay về lệnh sed là bạn có thể thêm văn bản vào bất kỳ đâu trong tệp. Vì vậy, ví dụ: nếu bạn muốn thêm nội dung nào đó sau dòng thứ tư, hãy sử dụng lệnh như sau:

Mã nguồn [Chọn]
sed -i '4 a Appended after the fourth line' append.txt

Lần này, dòng này được thêm vào ngay sau dòng thứ tư.

1.5. Sử dụng tee để nối văn bản vào tệp

Lệnh tee cho phép bạn đọc từ đầu vào tiêu chuẩn và ghi đầu ra vào tệp. Cú pháp cơ bản như sau:

Mã nguồn [Chọn]
tee [OPTION]... [FILE]...
Có hai cách để bạn có thể nối văn bản vào tệp bằng lệnh tee. Sử dụng tùy chọn "-a" hoặc toán tử chuyển hướng kép. Chúng ta hãy xem phương pháp đầu tiên.

Mã nguồn [Chọn]
tee -a append.txt
Sau khi thực hiện lệnh, bạn sẽ vào chế độ tương tác. Bạn có thể viết bất kỳ văn bản nào và nhấn Enter để nối nó vào tệp. Khi làm như vậy, bạn sẽ thấy văn bản giống như đầu ra trên thiết bị đầu cuối. Để thoát khỏi lời nhắc, nhấn Ctrl+D.


Trong phương pháp khác, thiết bị đầu cuối sẽ không lặp lại chuỗi bạn nhập vào, giúp quá trình này trở nên rõ ràng hơn nhiều. Ngoài ra, nó hoạt động theo cách tương tự. Đây là lệnh:

Mã nguồn [Chọn]
tee >> append.txt

Như bạn có thể thấy, khi chúng ta nhập một chuỗi, nó không được hiển thị lại trong terminal.

1.6. Sử dụng awk

Lệnh awk cực kỳ mạnh mẽ khi thao tác với văn bản. Với một số điều chỉnh, bạn có thể thêm văn bản vào tệp bằng lệnh này. Đây là cú pháp của lệnh:

Mã nguồn [Chọn]
awk 'BEGIN{print "Feeling awkward"}' >> append.txt

Trong ví dụ trên, chúng tôi đã sử dụng quy tắc BEGIN của lệnh awk để in một số văn bản và gửi nó đến tệp mục tiêu bằng cách sử dụng toán tử chuyển hướng.

1.7. Sử dụng Trình soạn thảo văn bản để nối văn bản

Điều này khá đơn giản. Nếu không thích sử dụng lệnh hoặc cảm thấy khó ghi nhớ cú pháp, bạn có thể chỉ cần sử dụng bất kỳ trình soạn thảo văn bản Linux nào để nối dòng vào tệp văn bản. Đối với hướng dẫn này, chúng tôi sẽ sử dụng trình soạn thảo văn bản nano.

Để mở tệp trong nano, hãy sử dụng lệnh bên dưới:

Mã nguồn [Chọn]
nano <filename>

Hãy nhớ thay thế <tên tệp> bằng đường dẫn đến tệp thực tế trong lệnh trên. Sau khi nó được mở trong trình chỉnh sửa, bạn có thể điều hướng qua văn bản bằng các phím mũi tên và nhập bất cứ thứ gì bạn thích bằng bàn phím.

Để nối một dòng, tất cả những gì chúng ta cần làm là sử dụng phím mũi tên xuống để đi đến cuối tệp. Nếu bạn cần tạo một dòng mới, hãy thực hiện bằng cách nhấn Enter. Sau đó nhập bất kỳ văn bản nào bạn muốn. Cuối cùng, lưu tệp bằng Ctrl+O và thoát trình chỉnh sửa bằng Ctrl+X.

2. Cách chuyển hướng đầu ra của lệnh sang tệp

Nếu bạn muốn lưu kết quả đầu ra của lệnh vào một tệp, bạn có thể thực hiện việc đó bằng cách sử dụng toán tử chuyển hướng (>>). Giả sử bạn chạy lệnh ls để lấy nội dung của thư mục hiện tại. Bạn muốn lưu danh sách vào một file có tên command.txt. Để làm điều đó, hãy chạy lệnh dưới đây:

Mã nguồn [Chọn]
ls >> command.txt

Điều tương tự cũng xảy ra với bất kỳ lệnh Linux nào khác. Bạn viết lệnh đó, thêm toán tử chuyển hướng, sau đó là tên tệp nơi bạn muốn lưu kết quả đầu ra.

3. Cách thêm đầu ra tiêu chuẩn và lỗi tiêu chuẩn vào một tệp

Trước khi kết thúc, chúng tôi muốn giới thiệu cho bạn một thủ thuật thao tác tệp thú vị khác trong Linux. Nếu bạn muốn chuyển hướng cả đầu ra tiêu chuẩn và lỗi tiêu chuẩn, hãy chạy:

Mã nguồn [Chọn]
command >> file.txt 2>&1
Thay vì trường "lệnh", bạn cần nhập một lệnh cụ thể có đầu ra mà bạn muốn nắm bắt. 1 và 2 lần lượt là các bộ mô tả tệp cho đầu ra tiêu chuẩn và lỗi tiêu chuẩn. Chúng tôi cũng sử dụng dấu & để cho biết rằng phần đứng trước và sau toán tử chuyển hướng là phần mô tả tệp chứ không phải tên tệp.

4. Trải nghiệm thao tác tệp Linux tốt hơn

Với kiến thức mới được trang bị này, giờ đây bạn có thể dễ dàng nối thêm một số văn bản hoặc chuỗi vào bất kỳ tệp nào bạn chọn. Tùy thuộc vào tình huống và mức độ quen thuộc với các lệnh Linux, bạn có thể chọn bất kỳ phương pháp nào ở trên.