Thursday, 24 January 2013

awk vs cut

mỗi tool sẽ chiến thắng trong trường hợp của nó:

Giả sử bạn muốn ghi ra các "cột" rời rạc, `awk` thường được ưa chuông hơn.

hvn@lappy: ~ $ awk -F : '{print $1,$3}' /etc/passwd
root 0
daemon 1
bin 2
sys 3
sync 4
games 5

hvn@lappy: ~ $ cut -d':' -f1,3 /etc/passwd
root:0
daemon:1
bin:2
sys:3
sync:4
games:5

output của `cut` có dấu ':'.

Khi cần nhiều "cột" liên tiếp, dùng `cut` sẽ tiện hơn:
 hvn@lappy: ~ $ cut -d':' -f5- /etc/passwd
root:/root:/bin/bash
daemon:/usr/sbin:/bin/sh
bin:/bin:/bin/sh
sys:/dev:/bin/sh
sync:/bin:/bin/sync

awk cũng làm được nhưng có thể bạn sẽ phải dùng đến 1 vòng for hay cách khác đi nữa thì vẫn dài hơn.