Tôi đang cố gắng xóa hai dòng đầu tiên và bốn dòng cuối cùng khỏi các tệp văn bản của tôi. Làm thế nào tôi có thể làm điều này với Bash?Làm cách nào để xóa hai dòng đầu tiên và bốn dòng cuối cùng khỏi một tệp văn bản có bash?
Trả lời
Bạn có thể kết hợp tail và head:
$ tail -n +3 file.txt | head -n -4 > file.txt.new && mv file.txt.new file.txt
+1 không sử dụng 'cat'. –
Cảm ơn bạn rất nhiều. – rebca
Lưu ý rằng từ Git Bash trong Windows, 'tail -n + 3' hoạt động nhưng' head -n -4' cho 'số dòng không hợp lệ'. Có vẻ như một lỗi (có lẽ một phiên bản cũ của 'đầu' được sử dụng). Đầu số –
Head và Tail
cat input.txt | tail -n +3 | head -n -4
Sed Giải pháp
cat input.txt | sed '1,2d' | sed -n -e :a -e '1,4!{P;N;D;};N;ba'
Bạn không cần sử dụng 'cat':' tail -n +3 input.txt | ... 'hoạt động hoàn hảo (và giống với' sed'). – huon
... Cảm ơn ... :) – Debaditya
Cảm ơn vì giải pháp sed; Tôi cần nó trên một máy không cho phép số dòng tiêu cực cho đầu. (4 trong lệnh đầu tiên nên được phủ nhận, bằng cách này.) – eswald
Bạn có thể gọi trình soạn thảo cũ từ dòng lệnh bash sử dụng mẫu sau. Lưu ý rằng nó sử dụng một here document để kết thúc danh sách các lệnh cũ.
ex text.file << EOF
1,2d
$
-3,.d
x
EOF
Đây là cách nhanh nhất tôi tìm thấy:
sed -i 1,2d filename
-i là sai –
'-i mở rộng Chỉnh sửa tệp tại chỗ, lưu bản sao lưu với phần mở rộng được chỉ định. Nếu một phần mở rộng có độ dài bằng không được đưa ra, không có bản sao lưu nào được lưu. Không nên đưa ra một số 0-mở rộng độ dài khi tệp chỉnh sửa tại chỗ, vì bạn có nguy cơ tham nhũng hoặc một phần nội dung trong các tình huống không gian đĩa bị cạn kiệt, v.v. – finferflu
Đó là những gì tài liệu nói, ít nhất là việc thực hiện sed trên hệ thống của tôi… – finferflu
- 1. Xóa hai ký tự cuối cùng khỏi mỗi dòng trong một tệp văn bản
- 2. Xóa các dòng X đầu tiên khỏi một tệp PHP
- 3. Đọc các dòng từ một tệp văn bản nhưng bỏ qua hai dòng đầu tiên
- 4. Xóa dòng cuối cùng khỏi chuỗi
- 5. Tệp hàng loạt để xóa 3 dòng đầu tiên của một tệp văn bản
- 6. Làm cách nào để ghép nối hai dòng của một tệp văn bản với Bash?
- 7. Tìm dòng cuối cùng trong một tệp văn bản
- 8. Làm cách nào để xóa tất cả trừ 10 dòng cuối cùng khỏi tệp?
- 9. Xóa dòng trống cuối cùng
- 10. Xóa dòng mới khỏi cuối tệp
- 11. Xóa dòng văn bản khỏi nhiều tệp trong Linux
- 12. FileHelpers: Làm thế nào để bỏ qua dòng đầu tiên và cuối cùng đọc chiều rộng văn bản cố định
- 13. Làm cách nào để bạn thêm hoặc xóa văn bản vào cuối nhiều dòng cùng một lúc trong Emacs?
- 14. Xóa "\ n" cuối cùng khỏi văn bản
- 15. Bash- cách đọc dòng thứ hai đến cuối cùng trong một tệp?
- 16. Làm cách nào để thêm văn bản biến vào dòng cuối cùng của tệp qua dòng lệnh?
- 17. Xóa các dòng trùng lặp khỏi tệp văn bản?
- 18. Làm cách nào để nhận dòng cuối cùng trống của một tệp bằng đuôi trong Bash?
- 19. Xóa dòng đầu tiên jtextarea
- 20. Làm cách nào để xóa từ đầu tiên khỏi một dòng?
- 21. Bootstrap 3.0: Làm thế nào để có văn bản và đầu vào trên cùng một dòng?
- 22. Xóa dòng cụ thể khỏi tệp văn bản?
- 23. Làm thế nào để phát hiện dòng đầu tiên và cuối cùng trong reader.readLine()?
- 24. Thay dòng đầu tiên của tệp văn bản trong Java
- 25. Xóa Dòng Tệp Văn bản Hàng đầu bằng PowerShell
- 26. Cách sử dụng PowerShell để xóa không gian từ cuối dòng trong một tệp văn bản
- 27. Cách xóa hai ký tự khỏi đầu dòng
- 28. Xóa ký tự/dòng cuối cùng
- 29. Xóa một dòng cụ thể trong một tệp văn bản?
- 30. Xóa hai dòng đầu tiên của một tệp bằng BASH hoặc awk hoặc sed hoặc bất kỳ số nào
Sau đây có thể giúp bạn với xóa dòng ở phần cuối của tập tin: [http://stackoverflow.com/questions/4881930/bash -remove-the-last-line-from-a-file] (http://stackoverflow.com/questions/4881930/bash-remove-the-last-line-from-a-file) – Linger