Câu trả lời:
Để "xóa tất cả các khoảng trống" có thể có nghĩa là một trong những điều khác nhau:
0x20
.\t
"\n
" và những thứ khácNếu sed
nó không phải là một yêu cầu cho một số lý do ẩn, tốt hơn nên sử dụng công cụ phù hợp cho công việc.
Lệnh tr
này có công dụng chính trong việc dịch (do đó tên "tr") một danh sách các ký tự thành một danh sách các ký tự khác. Như một trường hợp góc, nó có thể dịch sang danh sách trống của các ký tự; Tùy chọn -d
( --delete
) sẽ xóa các ký tự xuất hiện trong danh sách.
Danh sách các ký tự có thể sử dụng các lớp ký tự theo [:...:]
cú pháp.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
Với sed, [:...:]
cú pháp cho các lớp ký tự cần được kết hợp với cú pháp cho các bộ ký tự trong biểu thức chính quy [...]
, dẫn đến kết quả hơi khó hiểu [[:...:]]
:
sed 's/ //g' input.txt > no-spaces.txt
sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
sed 's/[[:space:]]//g' input.txt > no-spaces.txt
tr -d ' ' < input.txt > no-spaces.txt
.
tr
. (Bạn có nhìn thấy nó bất cứ nơi nào khác?)
Bạn có thể sử dụng để loại bỏ tất cả các khoảng trắng trong file
:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/
bằng một ký tự khác, ví dụ:sed "ss ssg"