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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell 指令使用整理

發布時間:2024/4/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 指令使用整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.getopts

  unix有一個優點就是標準UNIX命令在執行時都具有相同的命令行格式:?
  command -options parameters?
  如果在執行Shell程序也采用上述格式,Bourne Shell中提供了一條獲取和處理命令行選項的語句,即getopts語句。該語句的格式為:?
  getopts option_string variable?
  其中option_string中包含一個有效的單字符選項。若getopts命令在命令行中發現了連字符,那么它將用連字符后面的字符同option_string相比較。若有匹配,則把變量variable的值設為該選項。若無匹配,則variable設為?。當getopts發現連字符后面沒有字符,會返回一個非零的狀態值。Shell程序中可以利用getopts的返回值建立一個循環。?

while getopts "rso" arg ; do
case $arg in
  r )
rebuild=-r
  ;;
s )
  small=-s
  ;;
o )
  optim=-o
  ;;
? ) # 不認識
  echo error
  echo -e $usage
  exit 1
  ;;
  esac
done

2.sed?

sed編輯器逐行處理輸入,然后把結果發送到屏幕。

??

-i選項:直接作用源文件,源文件將被修改。

?

sed命令和選項:

?

a\在當前行后添加一行或多行
c\用新文本替換當前行中的文本
d刪除行
i\在當前行之前插入文本
h把模式空間的內容復制到暫存緩沖區
H把模式空間的內容添加到緩沖區
g取出暫存緩沖區的內容,將其復制到模式緩沖區
G取出暫存緩沖區的內容,將其追加到模式緩沖區
l列出非打印字符
p打印行
n讀入下一行輸入,并從下一條而不是第一條命令對其處理
q結束或退出sed
r從文件中讀取輸入行
!對所選行以外的行應用所有命令
s用一個字符串替換另外一個字符串

?

?

?

替換標志:

?

g在行內進行全局替換
p打印行
w將行寫入文件
x交換暫存緩沖區和模式空間的內容
y將字符轉換成另外一個字符

?

?

sed例子:

?

打印:p命令

?

sed ‘/abc/p’ file

打印file中包含abc的行。默認情況sed把所有行都打印到屏幕,如果某行匹配到模式,則把該行另外再打印一遍

sed? -n ‘/abc/p’ file和上面一樣,只是去掉了sed的默認行為,只會打印匹配的行

?

?

刪除:d命令

?

sed ‘3,$d’ file???刪除從第3行到最后一行的內容。
sed ‘$d’ file刪除最后一行的內容
sed ‘/abc/d’刪除包含abc的行。
sed ‘3d’ file刪除第三行的內容

?

?

替換:s命令

?

sed? ‘s/abc/def/g’ file把行內的所有abc替換成def,如果沒有g,則只替換行內的第一個abc
sed? -n ‘s/abc/def/p’ file只打印發生替換的那些行
sed? ‘s/abc/&def/’ file在所有的abc后面添加def(&表示匹配的內容)
sed? -n ‘s/abc/def/gp’ file把所有的abc替換成def,并打印發生替換的那些行
sed? ‘s#abc#def#g’ file把所有的abc替換成def,跟在替換s后面的字符就是查找串和?
替換串之間的分割字符,本例中試#

?

?

指定行的范圍:逗號

?

sed? -n ‘/abc/,/def/p’ file打印模式abc到def的行
sed? -n ‘5/,/def/p’ file打印從第五行到包含def行之間的行。
sed /abd/,/def/s/aaa/bbb/g修改從模式abc到模式def之間的行,把aaa替換成def

?

?

多重編輯-e

?

sed? -e ‘1,3d’ -e ‘s/abc/def/g’ file刪除1-3行,然后把其余行的abc替換成def

?

?

讀文件:r命令

?

sed? ‘/abc/r newfile’ file在包含abc的行后讀入newfile的內容

?

?

寫文件:w命令??

?

sed? ‘/abc/w newfile’ file在包含abc的行寫入newfile

?

?

追加:a命令?????

?

sed? ‘/abc/a\def’ file在包含abc的行后新起一行,寫入def

?

?

插入:i命令?????

?

sed? ‘/abc/i\def’ file在包含abc的行前新起一行,寫入def

?

?

修改:c命令???

?

sed? ‘/abc/c\def’ file在包含abc的行替換成def,舊文本被覆蓋

?

?

讀取下一行:n命令??

?

sed? ‘/abc/{n ; s/aaa/bbb/g;}’ file讀取包含abc的行的下一行,替換aaa為bbb

?

?

轉換:y命令???????

?

sed? ‘y/abc/ABC’ file將a替換成A,b替換成B,c替換成C(正則表達式元字符不起作用)

?

?

退出:q命令???

?

sed? ‘/abc/{ s/aaa/bbb/ ;q; }’ file在某行包含了abc,把aaa替換成bbb,然后退出sed。

?

?

暫存和取用:h命令(把模式行存儲到暫存緩沖區)和g(取出暫存緩沖區的行并覆蓋模式緩沖區)G(取出臨時緩沖區的行)命令?

?

h和g是復制行為(覆蓋),H和G表示追加。 ? ?

sed? -e ‘/abc/h’? -e ‘$G’ file包含abc的行通過h命令保存到暫存緩沖區,在第二條命令匯中,sed讀到最后一行$時,G命令從暫存緩沖區中讀取一行,追加到模式緩沖區的后面。即所有包含abc的行的最后一行被復制到文件末尾。
sed -e ‘/abc/{h; d;}’
????? -e? ‘/def/{g; }’ file
包含abc的行會移到包含def的行上,并進行覆蓋。

?

?

暫存和互換:h和x命令????

?

sed? -e ‘/abc/h’??
-e ‘/def/x’ file
包含abc的行會被換成def的行。

?

?

?

轉載于:https://www.cnblogs.com/live-in-city/p/3494171.html

總結

以上是生活随笔為你收集整理的shell 指令使用整理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。