日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell脚本常用语句用法笔记

發(fā)布時(shí)間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell脚本常用语句用法笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

腳本基本語句用法筆記

  • grep

-i 查詢時(shí)不區(qū)分大小寫
-n打印匹配的行號(hào)
-v 打印不匹配的行
-AX包括每次匹配之后X行
-BX包括每次匹配之后X行
cat /etc/passwd |grep student (-i 表示不關(guān)心大小寫)

正則表達(dá)式中 ^代表開始 $代表結(jié)束 cat /etc/passwd|grep ^# -v (去掉以#作為起始的行) cat /etc/passwd|grep ^$ -v (去掉空行)

-E增強(qiáng)符號(hào)的使用

cat inittab |grep -Ev ‘(^#|^$)’ 等價(jià)于 cat inittab |grep -Ev ‘^(#|$)

文件處理后重新保存錯(cuò)誤示范:

cat inittab |grep -Ev ‘^(#|$)’ >inittab 這樣會(huì)得到一個(gè)空文件。

解決辦法:

cat inittab |grep -Ev ‘^(#|$)’ >inittab.tmp ;cat ./inittab.tmp > inittab;rm -f ./inittab.tmp
  • sed
sed ‘s/ search / replace / ’ 或者 ‘s# # # ’ 或者 ‘s@ @ @’ echo “/usr/local” |sed ‘s@/usr@/var@’ cat ./iptables.list | sed ‘s/172.24./10.0./’ 重新cat ./iptables.list后發(fā)現(xiàn)內(nèi)容并沒有發(fā)生改變?cè)俅斡∽C了sed只是改變的流

sed 的搜索默認(rèn)是在一行里找到第一個(gè)符合條件的信息就停止搜索行內(nèi)剩余的信息。過想繼續(xù)搜索行內(nèi)的其他符合條件的信息需要添加g形成

s/ / /g’ 的形式 ‘s/ / /i’可以忽略大小寫 cat ./iptables.list | sed ‘1,50s/172.24./10.0./150行中的進(jìn)行替換 cat animal.txt |sed ‘/cat/,/dog/s/$/<---------/’傳說中的貓鼠游戲可以實(shí)現(xiàn)模糊行的匹配

遇到cat開始dog結(jié)束 在這些符合的行中在結(jié)尾添加<—————
如果沒有遇到dog那就一直執(zhí)行一直到最后
sed的刪除操作 cat iptables.list |sed ‘/^#/d’ 形式就是如此
要實(shí)現(xiàn)將#開始的 或者空行都刪掉

cat iptables.list |sed ‘/^#/d’ |sed ‘/^$/d’ cat iptables.list |sed -e ‘/^#/d’ -e ‘/^$/d’
  • wc對(duì)行數(shù)的統(tǒng)計(jì)

cat /etc/passwd |wc
37 63 1737
出現(xiàn)有37行 63個(gè)word 1737個(gè)字符(character)
cat /etc/passwd |wc -w
63
cat /etc/passwd |wc -l
37
cat /etc/passwd |wc -c
1737
cat /etc/passwd |grep -i studenttt |wc -l 用該命令的輸出數(shù)值來判斷是否存在,cat命令在不存在符合要求的時(shí)候,是不會(huì)輸出信息的,故而不能做判斷用。

  • awk

awk’ /匹配字符串/’文件名 匹配字符串可以用正則表達(dá)式來表示
awk ‘/root/’ /etc/passwd 等價(jià)于 grep root /etc/passwd
awk ‘{處理動(dòng)作}’文件名
awk -F:’{print 113}’ /etc/passwd
awk ‘/匹配字符串/ {處理動(dòng)作}’文件名
awk -F:’/root/{print 1,1,3}’ /etc/passwd
awk ‘{print 1,1,3}’ ~/names 可以找出第一列和第三列的內(nèi)容
awk ‘{print 1,1,3}’ ~/names 該表達(dá)式中逗號(hào)表示一個(gè)空格的分隔符
如果該表達(dá)式中逗號(hào)用空格代替,效果等價(jià)于awk ‘{printf 11<script id="MathJax-Element-5" type="math/tex">1</script>3}’

~/names 僅僅把第1,3列拼接在一起。 print函數(shù)將變量和字符夾雜著輸出,如同linux中的echo命令 shell>date Wed Feb 24 10:22:28 CST 2010 shell> date|gawk’{print “Month:”$2”\nYear:”,$6}’ Month:Feb Year:2010

最近在讀一個(gè)腳本,先把里面這些晦澀的腳本用法摘出來,磨刀不誤砍柴工。

總結(jié)

以上是生活随笔為你收集整理的shell脚本常用语句用法笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。