非常實用的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,按順序來。
是不是差不多。