sed 入門mysql
sed能夠替換給定文本中的字符串,固然也能夠用正則表試試匹配linux
sed 's/pattern/replace_string/' file正則表達式
或者sql
cat file | sed 's/pattern/replace_string'shell
使用-i選項,能夠講替換結果應用於原文件數組
sed -i 's/text/replace/' file svn
若是要替換全部的的內容,須要在末尾增長g函數
sed -i 's/pattern/replace/g' file學習
也可使用1g 2g 來從第n+1處開始替換url
移除空白行
sed '/^$/d' file
其中 ^$ 爲行首和行尾 空白行中 行首和行尾是一塊兒的
雙引號用來匹配變量
sed "s/$text/Hello"
若是有特殊字符可使用
sed -i "s#$test#hello#g"
awk
通用語法
awk ' BEGIN { print "start" } pattern { commands } END { print "end" }
file
awk腳本一般由3個部分組成,BENGIN語句塊,END語句塊,和可以使用模式匹配的通用語句塊
awk " BEGIN { statements } {statements} END {end statements }"
例如
awk " BEGIN { i=0 } { i++ } END { print i } " filename
awk " BEGIN { i=0 } { i++ } end { print i } " filename
如何工做
1.執行 BEGIN { commands } 語句塊中的語句
2.從文件或者輸入流中讀取一行 而後執行 pattern { commands } 重複這個過程
3.到末尾時候,結束 並執行 END 語句
BEGIN 語句 能夠 作些 如 變量初始化,打印輸出表格的表頭等
pattern 語句是主體的命令,若是不不指定,就打印每個讀到的行
簡單說就是 while do
好比
echo -e "line1\nline2" | awk ' BEGIN { print "start" } { print } END { print "end" }'
當print參數是以逗號進行分割時,參數打印時則以空格做爲定界符,在awk的print中,雙引號是被當作拼接操做符使用
echo | awk ' { var1="v1" ;var2="v2" ; print var1,var2;print var1"-"var2;} '
輸出
v1 v2
v1-v2
awk的特殊變量
NR :表示記錄數量 ,在執行過程當中對應於當前的行號
NF : 表示字段數量,在執行過程當中對應於當前行的字段數
$0 :包含執行過程當中當前行的文本
$1 :包含第一個字段的文本內容
$2:包含第2個字段的文本內容
$n: 包含第n個字段的文本內容
echo -e "line f2 f3 \nline2 f4 f5\nline3 f6 f7"|\
awk ' { print "LINE no:"NR",NO OF FIELDS:"NF,"$0="$0,"$1="$1,"$2="$2,"$3="$3 }'
利用-V選項將外部值傳遞給awk
var1="var1";var2="var2"
echo | awk ' { print v1,v2 } ' v1=$var1 v2=$var
使用getline讀取行
過濾
awk ' NR<5 ' 行號小於5
awk ' NR==1,NR==4 '
awk ' /linux'
awk ' !/linux'
設置字段定界符
awk -F: ' print $NF ' /etc/passwd
或者
awk ' BEGIN { FS=":" } { print $NF } ' /etc/passwd
awk 內置函數
length(String)
index(String,search_string) 返回search_sring在字符串中出現的位置
split(String,array,delimiter) 用定界符生成一個字符串列表並將該列表存入數組
substr(String,start,end) 生成子串
sub(regex,replacement,stirng)
match(regex,string) 檢查正則表達式是否可以匹配
打印從M行到N行
awk ' NR==M,NR==N' filename
打印正則表達式直接的
awk ' /start_parttern/./end_parttern/' filename
wget
wget url1 url2
可使用選項 -O 指定輸出的文件名
可使用-o 指定日誌文件
可使用 -t 指定重試次數
if [ $# = 3 ] 參數爲3個
lynx -traversal url 會生成一個reject.dat文件 包含此url的全部連接
tar
歸檔
tar -cf output.tar [SOURCE]
向歸檔中添加文件
tar -rvf test.tar new_file
列出歸檔內容
tar -tf archive.tar
壓縮的時候排除文件
tar --exclude-vcs -czvvf source_code.tar.gz eye_of_gnone_svn
gzip -l test.tar.gz 列出屬性信息
netstat -tnp 列出開放的端口
列出佔用cpu最高的10個進程
ps -eo comm,pcpu --sort -pcpu | head
ps -eLf --sort -nlwp | head
列出線程數最多的10個進程
操做mysql 能夠須要安裝 mysql-server 和mysql-client
能夠安裝ImageMagick 用來縮放圖片 轉換格式等
這兩天吸取了不少,調整了不少思路,不少能夠再之前和之後的代碼中用到,基本系統的學習了shell,提供了不少思路