Bash Xóa ký tự x cuối cùng khỏi chuỗi

Bash Remove Last X Characters From String



Đôi khi người ta có thể phải xóa các chữ cái khỏi một chuỗi. Dù trường hợp có thể xảy ra, Linux bao gồm một số công cụ hữu ích được tích hợp sẵn để loại bỏ các chữ cái tạo thành một văn bản như vậy trong Bash. Bài viết này trình bày cách xóa các ký tự khỏi một chuỗi bằng các phương pháp đó. Trong bài đăng này, các hướng dẫn được chạy trên Ubuntu 20.04 Focal Fossa. Các hướng dẫn tương tự có thể được chạy trên bất kỳ hệ thống Linux nào đã cài đặt các tiện ích nêu trên. Để thực hiện các hướng dẫn, chúng tôi sẽ sử dụng Terminal thông thường. Phím tắt Ctrl + Alt + T sẽ mở công cụ Terminal.

Phương pháp 01: Cách chuỗi con

Phương pháp đầu tiên của chúng tôi để xóa các chữ cái hoặc ký tự khỏi một chuỗi giống như tạo một chuỗi con từ chuỗi gốc. Trong khi đó, thiết bị đầu cuối đã được mở; chúng tôi sẽ tạo một tệp bash để thêm mã bash của chúng tôi. Vì vậy, chúng ta có thể thực hiện xóa ký tự hoặc tạo chuỗi con trong đó. Vì vậy, chúng tôi đã sử dụng hướng dẫn cảm ứng tích hợp trong trình bao của chúng tôi để tạo tệp bash.









Vì tệp đã được tạo nhanh chóng trong thư mục chính của Ubuntu 20.04, hãy mở tệp trong trình chỉnh sửa nào đó để chỉnh sửa. Vì vậy, chúng tôi chọn trình soạn thảo GNU để mở tài liệu file.sh như bên dưới.







Sao chép mã hiển thị bên dưới trong đó. Đoạn mã này chứa phần mở rộng bash khi bắt đầu và sau đó, chúng tôi đã khai báo một biến chuỗi val với một giá trị chuỗi. Ở dòng khác, chúng tôi sử dụng cụm từ echo để hiển thị biến này trong terminal. Nhiệm vụ thực sự bắt đầu từ đây. Chúng tôi đã khởi tạo một biến mới và gán cho nó một giá trị là chuỗi con của biến ban đầu val. Chúng tôi đã thực hiện điều đó bằng cách đề cập -14 trong dấu ngoặc nhọn sau dấu hai chấm. Điều này cho trình biên dịch biết rằng nó phải loại bỏ 14 chữ cái cuối cùng khỏi chuỗi ban đầu FirstWorldCountries. Các chữ cái còn lại sẽ được lưu vào biến new. Trong dòng cuối cùng, echo đã được sử dụng để in biến mới new.



Việc thực thi đúng tệp file.sh bằng cách sử dụng lệnh bash sẽ xuất hiện như mong đợi. Đầu tiên, nó hiển thị giá trị của biến chuỗi đầu tiên là val, và sau đó, nó hiển thị giá trị của chuỗi mới được tạo từ một biến đầu tiên theo đầu ra được hiển thị.

Phương pháp 02: Sử dụng các ký hiệu đặc biệt

Một phương pháp đơn giản và dễ dàng hơn để xóa các chữ cái hoặc ký tự cuối cùng khỏi bất kỳ chuỗi nào là thông qua các ký hiệu hoặc ký tự đặc biệt, ví dụ: ký hiệu phần trăm và dấu chấm hỏi. Vì vậy, lần này chúng tôi sẽ sử dụng tỷ lệ phần trăm và dấu chấm hỏi để xóa các ký tự khỏi bất kỳ chuỗi nào. Do đó, chúng tôi đã mở cùng một tệp để cập nhật tập lệnh bash bằng trình soạn thảo GNU Nano. Nhìn chung, mã giống nhau, nhưng phần biến mới có một chút khác biệt. Chúng tôi đã sử dụng dấu phần trăm để cho hệ thống biết rằng số lượng dấu hỏi được đề cập đại diện cho số ký tự từ một biến val sẽ bị xóa sau dấu phần trăm này. Bạn có thể thấy chúng tôi đã thêm 9 biểu tượng dấu chấm hỏi. Điều này có nghĩa là 9 ký tự cuối cùng từ chuỗi FirstWorldCountries sẽ bị xóa và chuỗi còn lại sẽ là FirstWorld. Chuỗi còn lại này sau đó sẽ được lưu vào một biến mới.

Khi chúng tôi đã thực thi tệp bash được cập nhật, kết quả sẽ xuất hiện như dự đoán. Nó hiển thị chuỗi ban đầu từ biến đầu tiên và giá trị của biến thứ hai, mới được tạo từ biến val.

Phương pháp 03: Sử dụng Sed

Sed là một công cụ hữu ích và hiệu quả để thay đổi trình tự văn bản. Đó là môi trường phát triển không tương tác cho phép bạn làm việc với đầu vào dữ liệu và thực hiện các chuyển đổi văn bản đơn giản. Bạn cũng có thể sử dụng sed để xóa các chữ cái khỏi các văn bản mà bạn không muốn. Chúng tôi sẽ sử dụng một chuỗi mẫu và định tuyến nó vào lệnh sed cho mục đích minh họa. Bạn có thể xóa một ký tự cụ thể khỏi một số loại chuỗi bằng sed. Vì vậy, chúng tôi đã sử dụng dòng đơn giản của một chuỗi trong câu lệnh echo. Chúng tôi đã sử dụng sed để xóa ký tự A khỏi chuỗi được đề cập. Đảm bảo tuân theo cú pháp ‘s / string_to_be_removed //’. Kết quả hiển thị chữ A đã bị loại bỏ.

Để loại bỏ toàn bộ từ Aqsa, chúng tôi đã đề cập đến ký tự đầu tiên và cuối cùng của một từ với các dấu chấm bên trong để biểu thị các chữ cái bị thiếu. Kết quả hiển thị chuỗi với việc loại bỏ từ Aqsa.

Để xóa bất kỳ số ký tự cuối cùng nào khỏi một chuỗi, hãy đề cập đến số dấu chấm theo yêu cầu của bạn trước biểu tượng đô la như được hiển thị.

Phương pháp 04: Sử dụng Awk

Awk là một ngôn ngữ kịch bản phức tạp có thể được sử dụng để khớp các mẫu và xử lý văn bản. Bạn có thể sử dụng Awk để thay đổi và sửa đổi đầu vào theo nhiều cách khác nhau. Bạn cũng có thể xóa các ký tự khỏi chuỗi bằng awk. Awk có vẻ hơi khác so với sed. Lần này chúng tôi đã thay đổi chuỗi bằng Aqsa Yasin. Hàm awk sẽ tạo chuỗi con thông qua phương thức substr và in nó trong terminal. Độ dài hàm đã được sử dụng để chứng minh số lượng chữ cái bị xóa khỏi chuỗi được đề cập. Ở đây, length ($ 0) -5 có nghĩa là loại bỏ 5 ký tự cuối cùng của một chuỗi và phần còn lại sẽ là một phần của chuỗi con sẽ được in ra.

Chúng tôi đã cố gắng xóa 9 ký tự cuối cùng khỏi chuỗi Aqsa Yasin và nhận A làm chuỗi con đầu ra.

Phương pháp 05: Sử dụng Cut

Cut dường như là một tiện ích dòng lệnh để trích xuất một đoạn văn bản từ một cụm từ hoặc tài liệu như vậy và in nó ra đầu ra tiêu chuẩn. Thao tác này cũng có thể được sử dụng để xóa các chữ cái khỏi một số loại chuỗi. Chúng tôi sẽ sử dụng một cụm từ ví dụ và chuyển nó đến hướng dẫn cắt cho mục đích thử nghiệm. Vì vậy, chúng tôi đã sử dụng cụm từ Aqsa Yasin và chuyển nó vào truy vấn cắt. Sau cờ –c, chúng ta đã xác định phạm vi chỉ mục cho một chuỗi để cắt các ký tự từ một chuỗi được đề cập. Nó sẽ hiển thị các ký tự từ chỉ mục 1 đến chỉ số 5. ​​Chỉ số 5 đã bị loại trừ ở đây. Kết quả hiển thị 4 ký tự đầu tiên là Aqsa.

Lần này chúng ta sẽ sử dụng lệnh cắt theo cách khác. Chúng tôi đã sử dụng hàm rev để đảo ngược chuỗi. Sau khi đảo ngược một chuỗi, chúng ta sẽ cắt ký tự đầu tiên từ một chuỗi. Cờ -c2-có nghĩa là chuỗi con của chúng ta sẽ là ký tự 2 trở đi. Sau đó, hàm đảo ngược lại được sử dụng để hoàn nguyên chuỗi. Vì vậy, lần này chúng tôi lấy lại chuỗi ban đầu với việc loại bỏ ký tự cuối cùng.

Để loại bỏ 7 ký tự cuối cùng, bạn chỉ cần đề cập đến -c7-trong lệnh cắt trong khi sử dụng chức năng đảo ngược.

Phần kết luận:

Có nhiều thời gian hơn một phương pháp để thực hiện một tác vụ cơ bản trên Linux. Tương tự, bạn có thể xóa các ký tự ra khỏi văn bản. Bài viết này trình bày năm phương pháp riêng biệt để loại bỏ các ký tự không mong muốn ra khỏi chuỗi, cũng như một số trường hợp. Bất kỳ công cụ nào bạn chọn là hoàn toàn phụ thuộc vào sự lựa chọn của bạn và quan trọng hơn là những gì bạn muốn đạt được.