日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

bash 实用技巧

發(fā)布時(shí)間:2025/5/22 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash 实用技巧 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一..將文件的內(nèi)容賦給一個(gè)變量:

  file=$(cat filelist)

? ? ? ?file=$(< file)

NOTE:后者性能比前者好

二..bash 分組匹配:

HOSTNAME='mysql-10=='

[root@node2 ~]# [[ $HOSTNAME =~ -([0-9]+)(.*) ]];VAR=${BASH_REMATCH[0]};echo $VAR
-10==
[root@node2 ~]# [[ $HOSTNAME =~ -([0-9]+)(.*) ]];VAR=${BASH_REMATCH[1]};echo $VAR
10
[root@node2 ~]# [[ $HOSTNAME =~ -([0-9]+)(.*) ]];VAR=${BASH_REMATCH[2]};echo $VAR
==

三..命令替換:

1.$(ls)

2.`ls`

?

四.新開一個(gè)子shell執(zhí)行命令:

(umask 000;mkdir hello;mkdir word)

創(chuàng)建了兩個(gè)目錄,權(quán)限都為777

?

五.set

set -x 以debug模式執(zhí)行shell,顯示執(zhí)行過程

set -e 如果某一條shell出錯(cuò)就不再往后繼續(xù)執(zhí)行

?

正則表達(dá)式:

[[space:]] ? ? ? ? ?#空白字符

[[:digit:]] ? ? ? ? ? ?#數(shù)字

[[:alnum;]] ? ? ? ? #數(shù)字和字母

[[:punct:]] ? ? ? ? ?#標(biāo)點(diǎn)符號(hào)

[[:lower:]] ? ? ? ? ?#小寫字母

[[:upper:]] ? ? ? ? #大寫字母

[[:alpha:]] ? ? ? ? #大小寫字母

. ? ? ? ? ? ? ? ? ? ? ?#匹配單個(gè)字符

* ? ? ? ? ? ? ? ? ? ? #匹配前面字符任意次

.* ? ? ? ? ? ? ? ? ? ? #匹配任意長度字符,也包含空行

\? ? ? ? ? ? ? ? ? ? #匹配前面字符一次或零次

\{m,n\} ? ? ? ? ? #匹配前面字符至少M(fèi)次,最多n次

\(ab\) ? ? ? ? ? ? #分組匹配,主要用于搭配后項(xiàng)引用,前面匹配到什么,后面就引用什么(eg:grep "\(l..e\).*\1$" test ? ?#匹配以括號(hào)中匹配到的內(nèi)容結(jié)尾的行)

位置鎖定:

  ^ ? ? ? ? ? ?#行首(如果出現(xiàn)在'[ ]'中,則表示排除,eg grep '[^1-2]' test,表示排除除了1和2的行)

? ? ? ?$ ? ? ? ? ? ?#行尾

? ? ? ^$ ? ? ? ? ? #空行

? ? ? \< ? ? ? ? ? #詞首

? ? ? \> ? ? ? ? ? #詞尾

?

grep參數(shù):
-i ? ? ? ? ?#忽略大小寫

-n ? ? ? ?#顯示行號(hào)

-c ? ? ? ?#統(tǒng)計(jì)符合條件的行

-v ? ? ? ?#排除符合條件的行

-An ? ? #打印符合條件行及下面的n行

-Bn ? ? #打印符合條件行及上面的n行

-Cn ? ? #打印符合條件的行及上下n行

egrep:

+ ? ? ? ? ? #匹配前面字符至少一次

? ? ? ? ? ? #匹配前面字符一次或零次

{m,n} ?#匹配前面字符至少m次,最多n次

(a|b) #匹配a或b

?

sed:

參數(shù):

-n 靜默模式,不再顯示模式空間的內(nèi)容

-i ?直接應(yīng)用在文件中生效,如果不加-i,只是輸出到屏幕而不應(yīng)用到文件

-r 使用擴(kuò)展正則表達(dá)式

-f 保存至文件執(zhí)行

sed '/hello/a\test' test ? #在匹配到內(nèi)容的下一行追加指定內(nèi)容

sed 's/hello/&test/' test #在匹配到的內(nèi)容后追加新內(nèi)容

wd 's/hello/test&/' test ?#在匹配到的內(nèi)容前追加新內(nèi)容

sed '1i\test' passwd ? ? ?#在第一行前面添加test

sed '1a\test' passwd ? ? #在第一行后面添加test

sed -n '1'p passwd ? ? ? #打印第一行

sed '1w test' passwd ? ?#將第一行內(nèi)容寫到test中

sed '1r test' passwd ? ? #將test中的內(nèi)容添加到第一行后面

sed 's/test/TEST/'g test ? ? #將test中的test換位大寫的TEST

NOTE:sed中/可以用@或者#代替

eg:

sed 's#test#TEST#'g test

sed 's@test@TEST@'g test

?

替換字符位置:

#cat test

three one

?

sed 's/\(three\)\(.*\)\(one\)/\3\2\1/' test

res: ?

one three

轉(zhuǎn)載于:https://www.cnblogs.com/dufeixiang/p/10808507.html

總結(jié)

以上是生活随笔為你收集整理的bash 实用技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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