phép nói rằng "textfile" chứa những điều sau đây:Bash: Tách textfile thành các từ với các ký tự chữ và số không như delimiters
lorem$ipsum-is9simply the.dummy text%of-printing
và rằng bạn muốn in mỗi từ trên một dòng riêng biệt. Tuy nhiên, các từ phải được xác định không chỉ theo khoảng trắng, mà bởi tất cả các ký tự không phải chữ và số. Vì vậy, kết quả sẽ như sau:
lorem
ipsum
is9simply
the
dummy
text
of
printing
Làm cách nào để thực hiện điều này bằng vỏ Bash?
Một số lưu ý:
Đây không phải là một câu hỏi bài tập về nhà.
Trường hợp đơn giản hơn khi chỉ được xác định bằng khoảng trắng, thật dễ dàng. Chỉ cần viết:
for i in `cat textfile`; do echo $i; done;
sẽ làm các trick, và trở về:
lorem$ipsum-is9simply the.dummy text%of-printing
Đối với những từ tách bởi các ký tự không tự chữ và số tôi đã thấy các giải pháp sử dụng IFS biến môi trường (liên kết bên dưới), nhưng tôi muốn tránh sử dụng IFS vì hai lý do: 1) nó sẽ yêu cầu (tôi nghĩ) thiết lập IFS cho một danh sách dài các ký tự không phải chữ và số. 2) Tôi thấy nó xấu xí.
Dưới đây là hai liên quan Q & Như tôi đã tìm thấy
How do I split a string on a delimiter in Bash?
How to split a line into words separated by one or more spaces in bash?
Perfect, đây là chính xác những gì tôi đã sau. Cảm ơn! (Tôi xin lỗi tôi không có đủ danh tiếng để bỏ phiếu cho câu trả lời của bạn) – Sv1
@ Sv1: Có thể bạn sẽ sớm có danh tiếng cao. Tôi đã bình chọn câu hỏi của bạn vì bạn đã ghi lại những gì bạn muốn và cho tất cả các nghiên cứu bạn đã thực hiện trên đó. – grok12
Nếu bạn có số thập phân thì sao? – Leyu