Tôi muốn nhận danh sách các dòng trong một tệp lô có độ dài lớn hơn 120 ký tự. Vì điều này tôi đã nghĩ đến việc sử dụng sed. Tôi đã thử nhưng tôi đã không thành công. Làm thế nào tôi có thể đạt được điều này ? Có cách nào khác để có được một danh sách khác hơn là sử dụng sed ?? Cảm ơn ..Tìm các dòng có độ dài lớn hơn 120 ký tự bằng cách sử dụng sed
Trả lời
Một cách khác để làm điều này sử dụng awk:
cat file | awk 'length($0) > 120'
Bạn có thể sử dụng grep
và lượng hóa sự lặp lại của nó:
grep '.\{120\}' script.sh
+1. Bleh, nhanh hơn vài giây. –
'grep' nhanh hơn ít nhất là 10x trên các tệp lớn (10Gb). – FeedTheWeb
Sử dụng sed, bạn có một số lựa chọn thay thế:
sed -e '/.\{120\}/!d'
sed -e '/^.\{,119\}$/d'
sed -ne '/.\{120\}/p'
Tùy chọn đầu tiên khớp với các dòng không có (ít nhất) 1 20 ký tự (số !
sau biểu thức là thực hiện lệnh trên các dòng không khớp với mẫu trước đó) và xóa chúng (ví dụ: không in chúng).
Tùy chọn thứ hai khớp với các dòng bắt đầu (^
) để kết thúc ($
) có tổng số ký tự từ 0 đến 119. Các dòng này cũng bị xóa.
Tùy chọn thứ ba là sử dụng cờ -n
, cho phép sed không in dòng theo mặc định và chỉ in một thứ gì đó nếu chúng tôi yêu cầu. Trong trường hợp này, chúng tôi khớp các dòng có (ít nhất) 120 ký tự và sử dụng p
để in chúng.
Các câu hỏi tên 'sed' cụ thể. Trong khi tôi đánh giá cao tất cả các câu trả lời khác, đây là một trong những chỉ hoạt động khi sed là tất cả các bạn có. – Leo
- 1. sử dụng sed để sao chép dòng và xóa ký tự từ các bản sao
- 2. Độ dài ký tự tối đa UUID
- 3. sử dụng SED với ký tự đại diện
- 4. Chèn ký tự tại một vị trí cụ thể bằng cách sử dụng sed
- 5. Các ký tự dòng mới trong vùng văn bản tăng độ dài văn bản trong C#
- 6. Cảnh báo "có thể in dòng dài hơn 76 ký tự" khi gửi HTML E-Mail
- 7. Sử dụng các ký tự unicode lớn hơn 2 byte với Net
- 8. Đánh số các dòng khớp với mẫu bằng cách sử dụng sed
- 9. Cách xóa các ký tự không hợp lệ khỏi tệp xml bằng sed hoặc Perl
- 10. sql sử dụng "nhỏ hơn hoặc bằng" & "không lớn hơn"
- 11. Python trả về độ dài chuỗi sai khi sử dụng các ký tự đặc biệt
- 12. Cách tìm kiếm các ký tự không phải ASCII bằng các công cụ bash?
- 13. Chia chuỗi thành danh sách các chuỗi có độ dài bằng cách sử dụng LINQ
- 14. Làm cách nào để xóa các ký tự X đầu tiên khỏi chuỗi bằng sed?
- 15. Bao bì dòng mã - cách xử lý các dòng dài
- 16. Tách chuỗi bằng cách sử dụng dấu cách cách nhau và độ dài tối đa
- 17. Tránh các dòng mã dài bằng Python
- 18. Sử dụng sed giữa các dòng cụ thể chỉ
- 19. Cách chèn ký tự dòng mới sau một số ký tự cố định trong một tệp
- 20. Sử dụng sed, làm thế nào để bạn in các ký tự 'N' đầu tiên của một dòng?
- 21. Làm cách nào để làm cho ký tự đầu tiên lớn hơn nhiều trong một TextView
- 22. Nhà văn csv Python có sử dụng các ký tự cuối dòng DOS không?
- 23. gây tử vong: lỗi giao thức: ký tự độ dài dòng không hợp lệ: Unab
- 24. sed tối ưu hóa (chỉnh sửa tập tin lớn dựa trên số liệu nhỏ hơn)
- 25. Điều gì sẽ là ký tự Unicode cho dấu đầu dòng lớn ở giữa ký tự?
- 26. Cố gắng regex cho các chuỗi dài hơn 22 ký tự
- 27. Tìm kiếm các tệp nhật ký lớn
- 28. Tìm ký tự không phải ASCII trong cột VARCHAR bằng cách sử dụng SQL Server
- 29. Trong Android - Làm cách nào tôi có thể đăng ký chỉ các nhấp chuột dài bằng cách sử dụng ClickableSpan
- 30. Sử dụng "lớn hơn hoặc bằng" hay chỉ là "lớn hơn"
Cảm ơn. Nó đã làm việc. Làm thế nào tôi có thể nhận được số dòng? – Sravan
Bất kỳ lý do nào để sử dụng 'cat'? – choroba
awk 'chiều dài ($ 0)> 120 {print NR ":" $ 0}' – piokuc