Ghi tiep vào file trong linux

Trong bài này mình sẽ hướng dẫn các bạn cách thêm dữ liệu text vào cuối file trong Linux, có rất nhiều lệnh Linux giúp bạn làm được điều này, và chúng ta sẽ lần lượt tìm hiểu nó nhé.

Ghi tiep vào file trong linux

Ghi tiep vào file trong linux

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong khi làm việc với các file cấu hình trong Linux, đôi khi ta cần nối thêm dữ liệu vào cuối file hiện có (chẳng hạn như thông số cấu hình của file), thì cách đơn giản nhất là hãy bổ sung nó ở cuối file để tránh bị ghi đè.

1. Thêm text vào cuối file bằng toán tử >> trong Linux

Toán tử >> dùng để chuyển dữ liệu đến một file, nếu file không tồn tại thì nó sẽ được tạo, nhưng nếu tồn tại thì dữ liệu sẽ được thêm vào cuối file.

Ví dụ: bạn có thể sử dụng lệnh echo để nối văn bản vào cuối file như sau.

# echo "/mnt/pg_master/wal_archives     10.20.20.5(rw,sync,no_root_squash)" >> /etc/exports

Ngoài ra, bạn có thể sử dụng lệnh printf (đừng quên sử dụng ký tự \ n để thêm vào dòng tiếp theo).

Bài viết này được đăng tại [free tuts .net]

# printf "/mnt/pg_master/wal_archives     10.20.20.5(rw,sync,no_root_squash)\n" >> /etc/exports

Bạn cũng có thể sử dụng lệnh cat để nối văn bản từ một hoặc nhiều file và nối nó vào một file khác.

Trong ví dụ sau, các file hệ thống được nối vào file cấu hình / etc / export đã được thêm vào file văn bản có tên là shared.txt.

# cat /etc/exports
# cat shares.txt
# cat shares.txt >>  /etc/exports
# cat /etc/exports

Ghi tiep vào file trong linux

Bên cạnh đó, bạn cũng có thể sử dụng các lệnh dưới đây để nối thông số (văn bản) cấu hình vào cuối file.

# cat /etc/exports
# cat >>/etc/exports<s<EOF
> /backups 10.20.20.0/24(rw,sync)
> /mnt/nfs_all 10.20.20.5(rw,sync)
> EOF
# cat /etc/exports

Ghi tiep vào file trong linux

* Chú ý: Đừng nhầm lẫn giữa toán >>> nhé. Nếu sử dụng toán tử > thì nó sẽ xóa nội dung của file đó rồi ghi đè lên. Điều này có thể dẫn đến mất dữ liệu.

2. Thêm text vào cuối file bằng lệnh tee trong Linux

Lệnh tee sẽ sao chép văn bản từ đầu vào (bên trái của lệnh) và ghi nó vào đầu ra (bên phải của lệnh). Bạn có thể sử dụng cờ -a của nó để nối văn bản vào cuối file như ví dụ dưới đây.

# echo "/mnt/pg_master/wal_archives     10.20.20.5(rw,sync,no_root_squash)" | tee -a /etc/exports
Hoặc
# cat shares.txt | tee -a /etc/exports

Ghi tiep vào file trong linux

Bạn cũng có thể sử dụng đoạn code dưới đây.

# cat <<EOF | tee -a /etc/exports
>/backups 10.20.20.0/24(rw,sync)
>/mnt/nfs_all 10.20.20.5(rw,sync)
EOF

Ghi tiep vào file trong linux

Trên là hai phương pháp thêm dữ liệu văn bản vào cuối file trong Linux, cách thứ nhất là sử dụng toán tử >>, cách thứ hai là sử dụng lệnh tee. Tùy vào thói quen của bạn mà chọn lệnh phù hợp nhé.

Ghi tiep vào file trong linux

Đã đăng vào thg 10 15, 2017 3:55 SA 5 phút đọc

Ghi tiep vào file trong linux

Lời mở đầu

Text - một cái tên không còn xa lạ gì trong giới lập trình viên. Text mang nghĩa là bản văn, một tập hợp của nhiều câu, mỗi câu lại gồm nhiều từ, mỗi từ gồm nhiều ký tự. Tùy theo từng ngôn ngữ mà các ký tự được thể hiện khác nhau. Việc xử lý những dữ liệu dạng text này luôn có trong hầu hết các ngôn ngữ lập trình, và nổi lên nhất là trong các ngôn ngữ thông dịch như Perl, Python, Ruby ....

Tuy nhiên, trong một hệ thống Linux, để đơn giản hóa quá trình xử lý dữ liệu văn bản, các nhà phát triển đã tạo ra các công cụ cơ bản để xử lý dữ liệu text trên tiêu chí một chương trình chỉ làm một việc nhưng sẽ làm việc đó một cách tốt nhất có thể. Và trên hết là các chương trình này đều không yêu cầu kỹ năng lập trình nhưng vẫn có thể dễ dàng sử dụng được. Sau đây mình xin phép được trình bày về một số chương trình(lệnh) giúp cho việc xử lý dữ liệu văn bản được thuận tiện hơn trong hệ thống Linux.

Lệnh "cat"

Là một trong những lệnh cơ bản nhất của một hệ thống Linux. Lệnh này có thể dùng để tạo, chèn, hiển thị và ghép nội dung của file.

  • Để tạo file dùng cú pháp như sau:

$ cat > simple.txt << "EOF"

This is the first line

This is the second line

EOF

EOF là ký tự được khai báo và dùng để kết thúc việc nhập liệu, có thể sử dụng một chuỗi bất kỳ thay thế. Trong trường hợp file simple không tồn tại thì một file mới sẽ được tạo với nội dung nhập vào như trên. Nếu không thì file simple.txt sẽ bị ghi đè với nội dung mới. Để tránh việc ghi đè dữ liệu có thể dùng cat >> thay cho cat > để dữ liệu tự động được chèn vào cuối file.

$ cat >> simple.txt << "EOF"

This is the third line

EOF

  • Nếu dùng cú pháp cat filename thì nội dung file filename sẽ được hiển thị.

$ cat simple.txt

This is the first line

This is the second line

This is the third line

  • Ngoài ra có thể dùng phối hợp việc hiển thị và chèn để ghép nội dung của 1 file vào cuối 1 file khác. VD:

$ cat simple1.txt >> simple2.txt

Lệnh "wc"

  • wc có nghĩa là wordcount, lệnh này đơn giản chỉ dùng để thống kê lượng dữ liệu có trong file
  • Cú pháp đơn giản nhất là wc filename VD:

wc simple.txt

3 15 70 simple.txt

Giá trị thứ nhất là số dòng (line), giá trị thứ 2 là số từ (word), giá trị thứ 3 là số ký tự (character) và cuối cùng là tên file.

Lệnh "grep"

  • Dùng để hiện thị những dòng có một phần nội dung nào đó VD:

$ grep "line" simple.txt

This is the first line

This is the second line

This is the third line

  • Hoặc có thể dùng tùy chọn -c để đếm số lần xuất hiện thay vì in hết ra VD:

$ grep -c "line" simple.txt

3

  • Một số tùy chọn khác -i không phân biệt hoa thường -l chỉ hiển thị tên file chứa nội dung cần tìm -n kèm theo số thứ tự của dòng xuất hiện

Lệnh "head" và lệnh "tail"

  • Hai lệnh headtail có cách sử dụng tương tự nhau, đều là lấy ra một phần bản văn của file. Chỉ khác là lệnh head lấy phần bản văn ở đầu file còn tail lấy phần cuối bản văn. VD: head -n4 filename sẽ lấy ra 4 dòng đầu tiên của file filename tail -n8 filename sẽ lấy ra 8 dòng cuối của file filename
  • Ngoài ra có thể sử dụng -c thay cho -n để lấy dữ liệu tính theo ký tự thay vì tính theo dòng.

Lệnh "sort"

  • Dùng để sắp xếp các dòng dữ liệu bản văn trong file VD:

$ sort simple.txt

This is the first line

This is the second line

This is the third line

  • Ngoài ra có thể dùng thêm các tùy chọn sau -u bỏ qua các giá trị trùng lặp -r sắp xếp theo thứ tự giảm dần (mặc định sẽ là tăng dần) -f không phân biệt hoa thường

Lời kết

Trên đây chỉ là một số lệnh cơ bản nhất dùng để thao tác với dữ liệu text trên Linux. Vẫn còn rất nhiều lệnh hữu ích khác như cut, sed, awk ... nhưng do khả năng của mình có hạn nên mình sẽ tìm hiểu và bổ sung các lệnh này trong các bài viết tiếp theo. Xin cảm ơn mọi người đã theo dõi bài viết.

References

  • https://www.ibm.com/developerworks/aix/library/au-unixtext/index.html
  • https://www.linux.org/threads/command-line-text-manipulation.11825

All rights reserved