50個Linux小技巧下

2021-10-07 02:25:21 字數 3461 閱讀 8166

31、監控目錄,新建立的檔名追加到日誌中

#要安裝inotify-tools軟體包

#!/bin/bash

mon_dir=/opt

inotifywait -mq --format %f -e create $mon_dir |\

while read files; do

echo $files >> test.log

done

32、find一次查詢多個指定檔案型別

33、字串拆分

# echo "hello" |awk -f '' ''

# echo "hello" |sed 's/./&\n/g'

# echo "hello" |sed -r 's/(.)/\1\n/g'

34、實時監控命令執行結果

# watch -d -n 1 'ifconfig'

35、解決郵件亂碼問題

# echo `echo "content" | iconv -f utf8 -t gbk` | mail -s "`echo "title" | iconv -f utf8 -t gbk`" ***@163.com

注:通過iconv工具將內容字符集轉換

36、在文字中每隔三行新增乙個換行或內容

# sed '4~3s/^/\n/' file

# awk '$0;nr%3==0' file

# awk '' file

37、刪除匹配行及後一行或前一行

# sed '/abc/,+1d' file  #刪除匹配行及後一行

# sed '/abc/' file #刪除後一行

# tac file |sed '/abc/,+1d' |tac  #刪除前一行

38、統計總行數

效率1 # wc -l file  

效率2 # grep -c . file

效率3 # awk 'end' file

效率4 # sed -n '$=' file

39、去除文字開頭和結尾空格

# sed -i 's/^[ \t]*//;s/[ \t]*$//' file

40、給單個ip加單引號

# echo '10.10.10.1 10.10.10.2 10.10.10.3' |sed -r 's/[^ ]+/"&"/g'

# echo '10.10.10.1 10.10.10.2 10.10.10.3' |awk '' 

41、指令碼中列印等待時間

wait()

wait

42、刪除指定行

# awk 'nr==1' file #$0可省略

# awk 'nr!=1' file

# awk 'nr!=1' 或刪除匹配行:awk '!/test/'

# sed '1d' file

# sed -n '1!p' file

43、在指定行前後加一行

在第二行前一行加txt:

# awk 'nr==2' a.txt 

# sed'2s/.*/txt\n&/' a.txt

在第二行後一行加txt:

# awk 'nr==2' a.txt

# sed'2s/.*/&\ntxt/' a.txt

44、通過ip獲取網絡卡名

# ifconfig |awk -f'[: ]' '/^eth'

45、浮點數運算(數字46保留小數點)

# awk 'begin'  

0.46

# echo 46|awk ''

0.46

# awk 'begin'

0.46

# echo 'scale=2;46/100' |bc|sed 's/^/0/'

0.46

# printf "%.2f\n" $(echo "scale=2;46/100" |bc)

0.46

46、浮點數比較

方法1:

if [ $(echo "4>3"|bc) -eq 1 ]; then

echo yes

else

echo no

fi方法2:

if [ $(awk 'begin') -eq 1 ]; then

echo yes

else

echo no

fi47、替換換行符為逗號

$ cat a.txt1:2

3替換後:1,2,3

方法1:

$ tr '\n' ',' < a.txt

$ sed ':a;n;s/\n/,/;$!b a' a.txt

$ sed ':a;$!n;s/\n/,/;t a' a.txt  :

方法2:

while read line; do

a+=($line)

done < a.txt

echo $ |sed 's/ /,/g'

方法3:

awk 'end' a.txt

#三目運算子(a?b:c),第乙個s是變數,s?s","$0:$0,第一次處理1時,s變數沒有賦值為假,結果列印1,第二次處理2時,s值是1,為真,結果1,2。以此類推,小括號可以不寫。

awk '' a.txt

48、windows下文字到linux下隱藏格式去除

方法1:開啟檔案後輸入

:set fileformat=unix

方法2:開啟檔案後輸入

:%s/\r*$//  #^m可用\r代替

方法3:

sed -i 's/^m//g' a.txt  #^m的輸入方式是ctrl+v,然後ctrl+m

方法4:

dos2unix a.txt

49、xargs巧用

xargs -n1  #將單個字段作為一行

# cat a.txt

1 2 

3 4# xargs -n1 < a.txt12

34xargs -n2 #將兩個字段作為一行

$ cat b.txt

string

numbera1

b2$ xargs -n2 < a.txt 

string number

a 1b 2

50、統計當前目錄中以.html結尾的檔案總大小

方法1:

# find . -name "*.html" -maxdepth 1 -exec du -b {} \; |awk 'end'

方法2:

for size in $(ls -l *.html |awk ''); do

sum=$(($sum+$size))

done

echo $sum

遞迴統計:

# find . -name "*.html" -exec du -k {} \; |awk 'end'

50個Linux小技巧上

2 查詢並刪除 data這個目錄7天前建立的檔案 find data ctime 7 exec rm rf find data ctime 7 xargs rm rf 3 tar命令壓縮進除某個目錄 tar zcvf data.tar.gz data exclude tmp exclude引數為不包...

linux下的幾個小技巧

在linux下啟用彩色文字 操作過程 很簡單 我用的是red hat 企四版的,這個rpm包在第二張安裝光碟裡,是vim enhanced 6.3.035 3.i386.rpm 1.放入第二張安裝盤 2.mount dev cdrom 3.rpm ivh media cdrom redhat rpm...

50個 JQuery 運用技巧

50個 jquery 使用技巧 感謝 1.如何建立巢狀的過濾器 允許你減少集合中的匹配元素的過濾器,只剩下那些與給定的選擇器匹配的部分。在這種情況下,查詢刪除了任何沒 not 有 has 包含class為 selected selected 的子節點。filter not has selected ...