Làm cách nào để xóa khoảng trắng khỏi đầu ra trong Linux?
Trong Linux, có một số cách để xóa khoảng trắng trong văn bản. Trong bài viết này, tôi sẽ nói về awk và sed để thao tác văn bản trong Linux Show
Hãy bắt đầu với Sed Sed là một tiện ích dòng lệnh tuyệt vời trong Linux. Có rất nhiều thứ bạn có thể làm với sed nhưng với mục đích của bài viết này, chúng ta sẽ chỉ nói về sed regex để xóa khoảng trắng trong chuỗi hoặc văn bản. Checkout tiện ích trực tuyến để xóa khoảng trắng. Ngoài ra, hãy kiểm tra sed tìm và thay thế cheatsheet bằng các ví dụ Xóa khoảng trắng trong Bash bằng SedHãy tạo một biến trong bash chứa chuỗi sau text=" this is a test text to show how sed works to remove space" Giả sử chúng ta muốn xóa tất cả các khoảng trắng trong văn bản trên bằng cách sử dụng sed echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace Để giải thích ngắn gọn, chúng tôi đang lặp lại $text và chuyển sang sed. Trong sed, chúng tôi đang thay thế không gian không có gì "s/ //g". G cuối cùng có nghĩa là loại bỏ nó trên toàn cầu trên toàn bộ văn bản Hãy nói rằng chúng tôi muốn xóa không gian hàng đầu bằng cách sử dụng sed echo "$text" | sed 's/^ //g' this is a test text to show how sed works to remove space sed s/^ / chỉ có nghĩa là không gian hàng đầu thay thế Để xóa dấu cách bằng sed, hãy làm như sau echo "$text" | sed 's/ \$//g' this is a test text to show how sed works to remove space sed s/ $/ có nghĩa là dấu cách Cách thay thế nhiều không gian bằng một không gian bằng Sed trong LinuxĐể xóa nhiều khoảng trắng, hãy sử dụng [ ]+ trong sed. [ ]+ có nghĩa là khớp nhiều hơn một khoảng trắng. Hãy làm ví dụ tương tự bằng cách chèn thêm khoảng cách trong từ text1="This is a test text to show how to remove multi spaces using sed in Linux" echo "$text1" | sed 's/[ ]\+/ /g' This is a test text to show how to remove multi spaces using sed in Linux Lưu ý rằng chúng ta cần thoát ký tự đặc biệt + bằng dấu gạch chéo ngược trong khi [ ]+ trong sed Cách thay thế nhiều khoảng trắng bằng một khoảng trắng cho mỗi dòng trong một tệp bằng SedHãy tạo một tệp giả và vài dòng trong tệp đó echo "this a first line with multiple spaces" > /tmp/test.txt echo "this a second line with multiple spaces" >> /tmp/test.txt Hãy kiểm tra tập tin của chúng tôi cat /tmp/test.txt this a first line with multiple spaces this a second line with multiple spaces Ok chúng tôi có tập tin của chúng tôi. Giả sử chúng ta muốn thay thế nhiều khoảng trắng bằng một khoảng trắng bằng cùng một lệnh sed cat /tmp/test.txt | sed 's/[ ]\+/ /g' this a first line with multiple spaces this a second line with multiple spaces nó đã làm việc Hãy nói rằng chúng tôi chỉ muốn sử dụng sed trên dòng thứ 2. Đã sử dụng sed '2s/[ ]+/ /g' để làm điều đó như hình bên dưới ________số 8Cách xóa khoảng trắng trong văn bản bằng AWKHãy lặp lại văn bản của chúng tôi một lần nữa echo $text this is a test text to show how sed works to remove space Use awk gsub as shown below. echo "$text" | awk '{ gsub(/ /,""); print }' thisisatesttexttoshowhowsedworkstoremovespace Cách thay thế nhiều không gian bằng một không gian bằng Awk trong LinuxChúng tôi sẽ sử dụng $text1 với nhiều khoảng trắng cho ví dụ này echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace0 Lưu ý rằng chúng tôi không cần thoát + vì nó không phải là ký tự đặc biệt trong awk gsub Cách sử dụng Awk để thay thế nhiều khoảng trắng bằng một khoảng trắng cho mỗi dòng trong một tệpecho "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace1 Gói (lạiBài đăng này tôi đã cố gắng đề cập đến hai tiện ích cơ bản awk và sed và chỉ ra cách sử dụng chúng để xóa khoảng trắng Làm việc trong một bản phân phối hệ điều hành Linux mang đến cho bạn một góc nhìn rất độc đáo về mức độ thay đổi của thế giới máy tính. Chẳng hạn, việc loại bỏ các ký tự khoảng trắng trên tệp văn bản nghe có vẻ là một công việc tẻ nhạt trừ khi bạn đang sử dụng Linux làm hệ điều hành chính của mình Khoảng trắng không chỉ nằm ngang như khoảng cách giữa các từ trong bài viết này hoặc các ký tự in được khác. Khoảng trắng cũng tồn tại dưới dạng khoảng cách dọc của các dòng và/hoặc đoạn văn. Vậy tại sao phải xóa khoảng trắng? Tệp văn bản tham khảoXét tệp văn bản mẫu sau echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace2 Theo ảnh chụp màn hình ở trên, rõ ràng chúng ta có thể lưu ý rằng tệp văn bản hiển thị các triệu chứng của cả ký tự khoảng trắng dọc và ngang. Chúng ta có thể sử dụng lệnh cat cộng với tùy chọn echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace9 để mở tệp này ở chế độ xem được đánh số echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace3 Các ký tự khoảng trắng rõ ràng được hiển thị trên tệp văn bản bao gồm khoảng trắng, tab và ngắt dòng. Để xóa tất cả các ký tự khoảng trắng này, chúng tôi sẽ xem xét sự trợ giúp và sử dụng ba lệnh Linux sẵn có Phương pháp 1. Sử dụng lệnh trLệnh tr sẽ lấy tệp văn bản ở trên làm đầu vào, dịch nội dung của tệp văn bản, xóa các ký tự khoảng trắng và sau đó ghi lại vào tệp đầu ra ký tự không phải khoảng trắng Tuy nhiên, chúng tôi cần cung cấp lệnh tr với các yêu cầu thực thi cụ thể i. e. xóa các ký tự khoảng trắng ngang, ký tự khoảng trắng dọc hay cả hai Xóa các ký tự khoảng trắng ngang trong tệpChúng tôi sẽ sử dụng tùy chọn ký tự echo "$text" | sed 's/^ //g' this is a test text to show how sed works to remove space0 như một phần của lệnh và sau đó thực hiện lệnh cat để in bố cục cuối cùng của tệp echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace4 Theo đầu ra ở trên, chúng tôi đã loại bỏ thành công các ký tự khoảng trắng ngang khỏi tệp văn bản trong Linux Xóa tất cả các ký tự khoảng trắng trong tệpTùy chọn echo "$text" | sed 's/^ //g' this is a test text to show how sed works to remove space1 được sử dụng để xóa cả ký tự khoảng trắng ngang và dọc khỏi tệp văn bản echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace5 Phương pháp 2. Sử dụng lệnh sedVì lệnh sed được triển khai phổ biến với các biểu thức chính quy nên chúng ta có thể sử dụng nó theo cách sau echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace6 Phương pháp 2. Sử dụng lệnh awkTiện ích xử lý văn bản mạnh mẽ này sử dụng tập lệnh giống như C của nó cũng như các hàm và biến tích hợp khác để thao tác xử lý văn bản một cách linh hoạt Chúng tôi sẽ sử dụng chức năng gsub của nó theo cách sau để xóa các ký tự khoảng trắng nằm ngang echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace7 Để xóa tất cả các ký tự khoảng trắng khỏi tệp văn bản, chúng tôi sẽ thực hiện sửa đổi sau đối với lệnh trên echo "$text" | sed 's/ //g' thisisatesttexttoshowhowsedworkstoremovespace8 Với ba cách tiếp cận lệnh Linux đã thảo luận ở trên, việc loại bỏ các ký tự khoảng trắng không mong muốn trên các tệp văn bản của bạn trong Linux sẽ không thành vấn đề |