實用腳本awk

非常實用的awk

有時候需要去服務器下載幾個日誌

日誌太多,翻滾起來很麻煩,操作又慢又複雜。

可以使用這個下載最新的兩個文件

ls -lt | head -3 | awk -F ' ' '{if(NR>1) {print $9}}'

“l”是輸出9段信息的,目錄屬性 所有者,字節,修改時間,文件名
“t”是按照時間降序排列

awk -F ‘<分隔符>’ ’ {pattern + action} ‘

非常強,其中{pattern+action}支持邏輯控制語句 和C-like 一樣的。
還可以加上begin和end,可以在begin中定義並初始化變量

‘BEGIN {讀之前執行一次} {pattern+action} END {最後執行一次}’

$0表示 整個一行,$1 表示第一個域 $9 表示第九個。

上面的命令用到了內置變量
NR ,表示已經讀取的結果行數

其實可以直接獲得三個文件名

ls -t | head -3

順便提一下Windows的bat

讀取文件:
for /f “delims=分隔符,tokens=2,3” %%i in (File.txt) do
echo <表達式>

批量重命名:
for /f “delims=分隔符,tokens=2,3” %%i in (dir \B ) do
ren <表達式> <表達式>

%%i表示 第二個域,那麼有3,則還可以用%%j,按順序來。

是不是差不多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章