シェルの正規表現は詳細ではありません、あなたは最終決定権を持っています

シェルの規則的な表現

1.シェルの規則的な表現

1.sortコマンド----ファイルの内容を行単位またはさまざまなデータタイプに従って並べ替えます

構文形式:

sort [选项] 参数
cat file | sort 选项

ここに写真の説明を挿入
ここに写真の説明を挿入

常用选项:
-f:忽略大小写
-b:忽略每行前面的空格
-n:按照数字进行排序
-r:反向排序
-u:等同于uniq,表示相同的数据仅显示一行
-t:指定字段分隔符,默认使用[Tab]键分隔
-k:指定排序字段
-o <输出文件>:将排序后的结果转存至指定文件
sort -n test.txt

ここに写真の説明を挿入

sort -u test.txt

ここに写真の説明を挿入
ここに写真の説明を挿入

sort -t ":" -k3 -n /etc/passwd 

ここに写真の説明を挿入

du -ah | sort -nr -o du.txt

ここに写真の説明を挿入

2. uniqコマンド-ファイル内の連続する繰り返し行を報告または無視するために使用され、多くの場合、sortコマンドと組み合わされます

语法格式:
uniq [选项] 参数
cat file | uniq 选项
常用选项:
-c:进行计数,并删除文件中重复出现的行
-d:仅显示重复行
-u:仅显示出现一次的行

ここに写真の説明を挿入

3、trコマンド-通常、標準入力から文字を置換、圧縮、および削除するために使用されます

语法格式:
tr [选项] [参数]
常用选项:
-c:保留字符集1的字符,其他的字符用(包括换行符\n)字符集2替换
-d:删除所有属于字符集1的字符
-s:将重复出现的字符串压缩为一个字符串;用字符集2 替换 字符集1
-t:字符集2 替换 字符集1,不加选项同结果。	
参数:
字符集1:指定要转换或删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”;
字符集2:指定要转换成的目标字符集。
[root@localhost ~]#echo "abc" | tr 'a-z' 'A-Z'
ABC

#将abc替换成ABC
[root@localhost ~]#echo abccabacca | tr -c "ab\n" "0"
ab00aba00a

#保留ab字符,将其他字符替换成00
[root@localhost ~]#echo 'hello world' | tr -d 'od'
hell wrl

#删除od字符
[root@localhost ~]#echo "thissss is a text linnnnnnne." | tr -s 'sn'
this is a text line.

#将重复出现的s n字符压缩成一个字符
[root@localhost ~]#cat 123.txt 
aa





bb
[root@localhost ~]#cat 123.txt | tr -s "\n"
aa
bb

#删除空行
[root@localhost ~]#echo $PATH | tr -s ":" "\n"
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

#把路径变量中的冒号":",替换成换行符"\n"
#删除Windows文件“造成”的'^M'字符:
cat 22.txt | tr -s "\r" "\n" > new_22.txt 
或cat 22.txt | tr -d "\r" > new_22.txt
Linux中遇到换行符("\n")会进行回车+换行的操作,回车符反而只会作为控制字符("^M")显示,不发生回车的操作。而windows中要回车符+换行符("\r\n")才会回车+换行,缺少一个控制符或者顺序不对都不能正确的另起一行。
[root@localhost ~]#rz -E
rz waiting to receive.
[root@localhost ~]#cat -A aa.txt 
aa^M$
^M$
^M$
^M$
#在window创建一个文件,放入linux里面cat -A aa.txt 看到每个空格显示^M$.格式会发生变化

ここに写真の説明を挿入

yum install -y dos2unix
dos2unix 33.txt #借用这个工具也可以改变格式,需要安装

ここに写真の説明を挿入

配列ソート

abc=(3 5 8 7 9 2 1)

echo ${abc[*]} | tr ' ' '\n' | sort -n

ここに写真の説明を挿入

2、通常の表現

1.機能

通常、通常の式は、文字列が特定の形式を満たしているかどうかを検出するために判断ステートメントで使用されます

2.通常の表現構成

通常の表現は通常の文字とメタ文字で構成されます

一般的な文字には、大文字と小文字、数字、句読点、その他の記号が含まれます

メタ文字とは、通常の表現で特別な意味を持つ特殊な文字を指し、ターゲットオブジェクトの先頭文字(メタ文字の前の文字)の出現モードを指定するために使用できます。

3.基本的な正規表現の一般的なメタ文字(サポートされているツール:grep、egrep、sed、awk)

基本的な正規表現の一般的なメタ文字 説明
\ エスケープ文字は、特別な記号の意味をキャンセルするために使用されます。例:!、\ n、$など。
^ マッチストリングが始まる位置。例:a、the、#、[az]
$ 一致する文字列が終了する位置。例:wordKaTeX解析エラー:位置2の「^」の後に予期されるグループ、^ ̲は空白行に一致します
\ n以外の任意の文字に一致します。例:go.d、g ... d
* 前の部分式に0回以上一致します。例:goo * d、go。* d
[リスト] リスト内の文字に一致します。例:go [ola] d、[abc]、[az]、[a-z0-9]、[0-9]は任意の桁に一致します
[^リスト] リスト以外のリスト内の任意の文字に一致します。例:[^ 0-9]、[^ A-Z0-9]、[^ az]小文字以外の文字に一致します
{n} 前の部分式にn回一致します。例:go {2} d、 '[0-9] {2、}'は2桁に一致します
{n} 前の部分式にn回以上一致します。例:go {2、} d、 '[0-9] {2、}'は2桁以上に一致します
{n、m} 前の部分式をn〜m回一致させます。例:go {2,3} d、 '[0-9] {2,3}'は2〜3桁に一致します

注:egrepとawkが{n}、{n、}、{n、m}を使用して一致させる場合、「{}」を「\」の前に追加する必要はありません。

4.拡張された正規表現メタ文字(サポートされているツール:egrep、awk)

拡張正規表現メタ文字 説明
+ 前の部分式に複数回一致します。たとえば、go + dは、god、good、gooodなどの少なくとも1つのoに一致します。
前の部分式に0回または1回一致します。例:go?d、gdまたはgodに一致します
() 括弧内の文字列全体を取り上げます。たとえば、g(oo)+ dの場合、good、goooodなど、oo全体と複数回一致します。
| または方法で単語の文字列に一致します。例:g(oo | la)d、goodまたはgladに一致します

おすすめ

転載: blog.csdn.net/weixin_51573771/article/details/111682810