2012-10-12 26 views
9

Có một mẫu sử dụng lệnh cut để trích xuất các phần của chuỗi bắt đầu từ bên trái. Một ví dụ được đưa ra dưới đây.Mã để trích xuất từ ​​phía bên phải với lệnh cắt?

$ echo "abc-def-ghi-jkl" | cut -d- -f-2 
abc-def 

Mã tương tự có thể thích nghi để trích xuất từ ​​bên phải như thế nào? Tôi đã nghĩ đến việc đảo ngược các từ và áp dụng cùng một phương pháp, nhưng nó quá phức tạp.

Trả lời

12

bạn có thể sử dụng rev

echo "abc-def-ghi-jkl" | rev | cut -d- -f-2 | rev 
+0

Đây là những gì tôi sử dụng. Ngoài ra cho 'uniq -F' vì nó không hỗ trợ bỏ qua từ cuối – sehe

6
$ echo "abc-def-ghi-jkl" | cut -d- -f3- 
ghi-jkl 

-2 cắt giảm đến trường thứ 2. 3- cắt giảm từ trường thứ 3 trở đi.

+0

Điều gì sẽ tham số -d được nếu chúng được tách bằng dấu cách – vfclists

+0

-d \ Tiếp theo không gian khác (vì vậy không gian là một phần của tham số) –

+1

này chỉ hoạt động nếu bạn biết trước số lượng trường mà mỗi dòng sẽ chứa. – chepner

Các vấn đề liên quan