2019年7月4日 星期四

awk 小技巧

這是第 2 次在相關專案中看到一樣的 awk 技巧,感覺還蠻好用的,記錄一下,以備不時之需。

假設我們使用 ls -al 列出所有檔案。

total 100
drwxrwxr-x 15 sw3 sw3  4096  六  17 16:59 .
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:58 ..
-rw-rw-r--  1 sw3 sw3  1472  六  17 16:59 benchmark_readme_template.md
drwxrwxr-x  2 sw3 sw3  4096  六  17 16:59 community
drwxrwxr-x  6 sw3 sw3  4096  六  17 16:59 compliance
-rw-rw-r--  1 sw3 sw3  2359  六  17 16:59 CONTRIBUTING.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 data_generation
drwxrwxr-x  8 sw3 sw3  4096  六  17 16:59 .git
-rw-rw-r--  1 sw3 sw3    74  六  17 16:59 .gitignore
-rw-rw-r--  1 sw3 sw3   298  六  17 16:59 .gitmodules
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 image_classification
-rwxrwxr-x  1 sw3 sw3  1133  六  17 16:59 install_cuda_docker.sh
-rw-rw-r--  1 sw3 sw3 11348  六  17 16:59 LICENSE.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 object_detection
-rw-rw-r--  1 sw3 sw3  3193  六  17 16:59 README.md
drwxrwxr-x  4 sw3 sw3  4096  六  17 17:36 recommendation
-rw-rw-r--  1 sw3 sw3   771  六  17 16:59 reference_results.md
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 reinforcement
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 rnn_translator
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 sentiment_analysis
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 single_stage_detector
drwxrwxr-x  4 sw3 sw3  4096  六  17 16:59 speech_recognition
drwxrwxr-x  3 sw3 sw3  4096  六  17 16:59 translation
這時我們可以用 awk '{print $9}' 取出檔案名,$0 是原始字串,其他就照順序從 1 開始。

如果想一氣呵成將它產生到另外一個檔案,我們可以把指令一起下完。

ls -al | awk '{print $9}' > tmp.log

沒有留言:

張貼留言