Expression régulière de shell
table des matières
- 1. Expression régulière de shell
-
- 1. La commande de tri ---- trie le contenu du fichier par unité de ligne ou selon différents types de données
- 2. La commande uniq --- utilisée pour signaler ou ignorer les lignes répétées consécutives dans un fichier, souvent combinée avec la commande sort
- Trois, commande tr --- couramment utilisée pour remplacer, compresser et supprimer des caractères de l'entrée standard
- Deux, expression régulière
1. Expression régulière de shell
1. La commande de tri ---- trie le contenu du fichier par unité de ligne ou selon différents types de données
Format de la syntaxe:
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. La commande uniq - utilisée pour signaler ou ignorer les lignes répétées consécutives dans un fichier, souvent combinée avec la commande sort
语法格式:
uniq [选项] 参数
cat file | uniq 选项
常用选项:
-c:进行计数,并删除文件中重复出现的行
-d:仅显示重复行
-u:仅显示出现一次的行
Trois, commande tr - couramment utilisée pour remplacer, compresser et supprimer des caractères de l'entrée standard
语法格式:
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 #借用这个工具也可以改变格式,需要安装
Tri par tableau
abc=(3 5 8 7 9 2 1)
echo ${abc[*]} | tr ' ' '\n' | sort -n
Deux, expression régulière
1. Fonction
Les expressions régulières sont généralement utilisées dans les déclarations de jugement pour détecter si une chaîne répond à un certain format
2. Composition d'expression régulière
L'expression régulière est composée de caractères ordinaires et de métacaractères
Les caractères courants incluent les lettres majuscules et minuscules, les chiffres, les signes de ponctuation et certains autres symboles
Les métacaractères font référence aux caractères spéciaux ayant une signification particulière dans les expressions régulières. Ils peuvent être utilisés pour spécifier l'apparence du caractère de début (le caractère avant le métacaractère) dans l'objet cible
3. Métacaractères courants dans les expressions régulières de base (outils pris en charge: grep, egrep, sed, awk)
Métacaractères courants des expressions régulières de base | la description |
---|---|
\ | Le caractère d'échappement est utilisé pour annuler la signification des symboles spéciaux. Exemple:!, \ N, $, etc. |
^ | La position où commence la chaîne de correspondance. Exemple: a, the, #, [az] |
$ | La position où la chaîne de correspondance se termine. Exemple: erreur d'analyse wordKaTeX: le groupe attendu après '^' à la position 2:, ^ ̲ correspond aux lignes vides |
. | Correspond à n'importe quel caractère sauf \ n. Exemple: go.d, g ... d |
* | Correspond à la sous-expression précédente 0 fois ou plus, par exemple: goo * d, go. * D |
[liste] | Correspond à un caractère de la liste, par exemple: go [ola] d, [abc], [az], [a-z0-9], [0-9] correspond à n'importe quel chiffre |
[^ liste] | Correspond à n'importe quel caractère d'une liste non-liste, par exemple: [^ 0-9], [^ A-Z0-9], [^ az] correspond à n'importe quelle lettre non minuscule |
{n} | Correspond à la sous-expression précédente n fois, par exemple: go {2} d, '[0-9] {2,}' correspond à deux chiffres |
{n} | Correspond à la sous-expression précédente au moins n fois, par exemple: go {2,} d, '[0-9] {2,}' correspond à deux chiffres ou plus |
{n, m} | Faites correspondre la sous-expression précédente n à m fois, par exemple: go {2,3} d, '[0-9] {2,3}' correspond à deux à trois chiffres |
Remarque: lorsque egrep et awk utilisent {n}, {n,}, {n, m} pour correspondre, "{}" n'a pas besoin d'être ajouté avant "\"
4. Métacaractères d'expressions régulières étendues (outils pris en charge: egrep, awk)
Méta-caractères d'expression régulière étendus | la description |
---|---|
+ | Faites correspondre la sous-expression précédente plus d'une fois, par exemple: go + d, correspondra à au moins un o, tel que god, good, goood, etc. |
? | Correspond à la sous-expression précédente 0 ou 1 fois, par exemple: go? D, elle correspondra à gd ou god |
() | Prenez la chaîne entre parenthèses dans son ensemble, par exemple: g (oo) + d, elle correspondra à oo dans son ensemble plus d'une fois, comme bon, gooood, etc. |
| | Faites correspondre la chaîne de mots d'une manière ou, par exemple: g (oo | la) d, correspondra bien ou heureux |