2009-02-11 38 views

Trả lời

146

Không sử dụng sed, sử dụng cắt.

grep .... | cut -c 1-N 

Nếu bạn PHẢI sử dụng sed:

grep ... | sed -e 's/^\(.\{12\}\).*/\1/' 
+0

Trên thực tế trên một hệ thống Cygwin Tôi đang làm việc trên tại 'cut' không cắt nó trong khi 'sed' làm. – guaka

+0

Hoặc thậm chí là 'sed -r 's/^ (. {12}). */\ 1 /''. – fedorqui

+1

@fedorqui '-r' dường như có sẵn trên Linux, nhưng không có trên Mac. –

4

đúng với sed:

grep ... | sed -e 's/^\(.\{N\}\).*$/\1/' 
6

không cần phải sử dụng grep hoặc

một ví dụ:

sed -n '/searchwords/{s/^\(.\{12\}\).*/\1/g;p}' file 
34
colrm x 

Ví dụ, nếu bạn cần 100 ký tự đầu tiên:

cat file |colrm 101 

Nó được khoảng năm và đang trong nhất của Linux và của bsd (freebsd cho chắc chắn), thường theo mặc định. Tôi không thể nhớ đã bao giờ phải nhập apt-get install colrm.

+0

Điều này không cung cấp 50 ký tự đầu tiên. Nó cung cấp cho n ký tự cho mỗi dòng văn bản – bsmoo

2

Để in ký tự đầu tiên N bạn có thể loại bỏ các nhân vật N + 1 cho đến cuối dòng:

$ sed 's/.//5g' <<< "defn-test" 
defn 
Các vấn đề liên quan