iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

30天菜鳥學 Linux 系列 第 14

14天-學習 awk 處理文本文件神器 part 3

  • 分享至 

  • xImage
  •  

今天進度 : 鳥哥的 Linux 私房菜 -- 第十一章、正規表示法與文件格式化處理


另外今天額外學到 awk 進階應用 : 批量執行命令

學習1 : 找出某某用戶下的所有進程,並生成對應的刪除命令

➜  demo ps -ef|grep test
test        1326       1  0 Sep13 ?        00:00:00 /lib/systemd/systemd --user
test        1327    1326  0 Sep13 ?        00:00:00 (sd-pam)
test        1333     742  0 Sep13 tty1     00:00:00 -bash
test        3049    1333  0 Sep14 tty1     00:00:00 vi /etc/netplan/50-cloud-init.yaml
root       21054    1191  0 01:26 ?        00:00:00 sshd: test [priv]
test       21183   21054  0 01:26 ?        00:00:00 sshd: test@pts/0
test       21184   21183  0 01:26 pts/0    00:00:00 -zsh
test       21423   21184  0 01:41 pts/0    00:00:00 ps -ef
test       21424   21184  0 01:41 pts/0    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox test
➜  demo ps -ef|grep test |awk '{print "kill -9 "$2}'
kill -9 1326
kill -9 1327
kill -9 1333
kill -9 3049
kill -9 21054
kill -9 21183
kill -9 21184
kill -9 21432
kill -9 21433
kill -9 21434

學習2 : 藉由 awk + xargs 執行批量改名命令

例子 :

➜  demo touch file{0..10}.txt 
➜  demo ls
file0.txt  file10.txt  file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt  file7.txt  file8.txt  file9.txt
➜  demo ls | awk '{print $NF}' | xargs -I {} mv {} update_{}
➜  demo ls
update_file0.txt   update_file1.txt  update_file3.txt  update_file5.txt  update_file7.txt  update_file9.txt
update_file10.txt  update_file2.txt  update_file4.txt  update_file6.txt  update_file8.txt

學習3 : 同樣能使用 bash 達到執行批量命令效果

例子 : 快速將資料夾下面的檔案按順序批量命名

➜  demo touch file{1..10}.txt
➜  demo ls
file10.txt  file1.txt  file2.txt  file3.txt  file4.txt  file5.txt  file6.txt  file7.txt  file8.txt  file9.txt
➜  demo num=0; for i in *; do mv "$i" "$(printf '%04d' $num).${i#*.}"; ((num++)); done
➜  demo ls
0000.txt  0001.txt  0002.txt  0003.txt  0004.txt  0005.txt  0006.txt  0007.txt  0008.txt  0009.txt

上一篇
13天-學習 awk 處理文本文件神器 part 2
下一篇
15天-再次處理 Hyper-V 跟 Ubuntu VM 不能SSH問題 ___*(  ̄皿 ̄)/#____
系列文
30天菜鳥學 Linux 59
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言