Linux Tip #1: Xử lý File/Output của command từng dòng trực tiếp trên shell

21/02/2020

Trường hợp muốn xử lý từng dòng của file hoặc output trực tiếp trên command line mà không cần viết bash, các bác có thể làm như sau:

[[email protected] ~]$ awk -F":" '{print $1}' /etc/passwd | while read line ; do echo "[+] User: $line" ; sudo crontab -u $line -l ; echo ; done

Đoạn quan trọng là đoạn pipeline sau command sinh ra output kết hợp với “while read line”, mỗi dòng trong output sẽ được lưu lần lượt vào biến “$line”, dựa vào đó rồi xử lý theo ý mình.

Ví dụ trên mình liệt kê danh sách user trên máy, với mỗi user in ra dách cronjob của họ, và kết quả của mỗi user sẽ cách dòng bởi 1 dòng trống.