xargs
xargs是一條Unix和類Unix操作系統(tǒng)的常用命令依鸥。它的作用是將參數(shù)列表轉換成小塊分段傳遞給其他命令眶熬,以避免參數(shù)列表過長的問題[1]侵佃。
例如,下面的命令:
本例中xargs將find產(chǎn)生的長串文件列表拆散成多個子串踱蛀,然后對每個子串調(diào)用rm窿给。-print0表示輸出以null分隔(-print使用換行);-0表示輸入以null分隔率拒。這樣要比如下使用find命令效率高的多崩泡。
# 刪除/path目錄下所有的文件(文件夾為-type d)
rm `find /path -type f`
# 如果path目錄下文件過多就會因為“參數(shù)列表過長”而報錯無法執(zhí)行。但改用xargs以后猬膨,問題即獲解決角撞。
find /path -type f -print0 | xargs -0 rm
awk
awk if
awk -F: '{if ($1=="root") print $1, "Admin"; else print $1, "Common User"}' /etc/passwd
腳本
基本格式
#!/bin/bash
#用于釋放內(nèi)存的腳本
#頭部
memoryused=`free|grep 'Mem'|awk '{print $2-$3-1400000}'`
echo $((memoryused))
if [ $memoryused -le 0 ]; then
#直接輸入sudo密碼
echo "yourpassword"|sudo -S sysctl -w vm.drop_caches=3
else
echo "no"
fi
# -le是小于 ((intstr+3)),將數(shù)字字符串轉化為數(shù)字,$((memoryused -le 0))應該也可以
-lt,小于
-le勃痴,小于等于
-eq谒所,等于
-ge,大于等于
-gt沛申,大于
-ne劣领,不等于
grep
統(tǒng)計每個文件中出現(xiàn)的次數(shù)
# grep -l baidu *.* 列出出現(xiàn)baidu的文件
# grep -c baidu *.* 統(tǒng)計每個文件出現(xiàn)baidu的次數(shù)
列出出現(xiàn)baidu的文件及其次數(shù)
grep -l baidu *.*|xargs grep -c baidu
curl
curl忽略https證書驗證,加上-k參數(shù)
sed
sed一般都是sed s/aa/zz/g
铁材。但是遇到要替換的是/,那么/可以換成別的符號尖淘。奕锌。#,%啊都可以。村生。
案例
批量重命名文件 刪除特定字符
# echo 輸出查看結果 實際使用換成mv
ls -1 |while read line;do newName=`echo $line|sed 's/[-,_,,副本,\s\(][\s]*[^\.]*//g'`;echo $line $newName;done;
# 以上代碼用于練習惊暴,一般使用rename更方便
# 按照man上面的注解,rename的語法格式是:rename from to file
# 這個命令有三個參數(shù)梆造,分別是from : 修改什么名字缴守,to:改成什么名字葬毫,file 需要修改的文件是哪些镇辉。
# 注意,perl版本的rename只有兩個參數(shù)贴捡,第一個參數(shù)為perl正則表達式忽肛,第二個參數(shù)為所要處理的文件