Shell colección de comandos básicos de uso común (diff, patch, cut, sort, uniq, tr)

Comando 1.diff (comando de comparación de archivos, directorios):

用法:
diff [options] files1 files2 | directory1 directory2

输出信息:
[num1,num2] [ a | c | d ] [num3,num4]  
num1,num2	##第一个文件中的行
a		    ##添加
c		    ##更改
d		    ##删除
<		    ##第一个文件中的内容
>		    ##第二个文件中的内容
num1,num2   ##第一个文件中的行
num3,num4	##第二个文件中的行

常用参数:
-b	##忽略空格
-B	##忽略空行
-i	##忽略大小写
-c	##显示文件所有内容并标示不同
-r	##对比目录
-u	##合并输出 (常用来生成补丁文件)

Como se muestra en la figura: 2d1 significa: La segunda línea del primer archivo (jaja) y la primera línea del segundo archivo (jaja1): elimine 123 (<123) en el primer archivo:
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2.comando parche: (parche)

dnf install patch -y  
patch  原文件 补丁文件
-b	 备份原文件 (备份文件为 源文件名.orig)

Nota: Los archivos de parche generados por diff -u haha ​​haha1 y diff -u haha1 haha ​​son diferentes; (el más cercano a los parámetros es la plantilla)
Inserte la descripción de la imagen aquí

Comando 3.cut: (interceptar, filtrar)

head + tail 可以截取查看文件的行   cut   截取查看文件的列
-d :	##指定:为分隔符
-f 	##指定显示的列 5第五列 | 3,5 3和5列 | 3-5 3到5列 | 5- 第五列以后 | -5 到第五列
-c	##指定截取的字符(数字用法同-f) cut -c 1-5 显示第1到5个字符

Como se muestra en la figura: head + tail pueden interceptar las líneas del archivo de vista. Cortar interceptar las columnas del archivo de vista:
Inserte la descripción de la imagen aquí
4.sort: (comando de clasificación); uniq: (ver comando duplicado)

sort :
-n	##纯数字排序
-r	##倒叙
-u	##去掉重复
-o	##输出到指定文件
-t	##指定分隔符
-k	##指定排序的列

Inserte la descripción de la imagen aquí

uniq :
-c	#合并重复并统计重复个数
-d	#显示重复的行
-u	#显示唯一的行

El comando uniq se usa junto con el comando sort: el
Inserte la descripción de la imagen aquí
ejemplo es como se muestra en la figura siguiente: El número de ocurrencias en el texto de salida:
Inserte la descripción de la imagen aquí

Comando 5.tr: (convertir mayúsculas y minúsculas, carácter, símbolo)

tr 'a-z' 'A-Z'		##小写转大写
tr  'A-Z' 'a-z'		##大写转小写
tr ' ' '*'          ##空格转换成*

Inserte la descripción de la imagen aquí

6. Pruebe el comando de contraste con && (sí), || (no):

test = []	##[  ] 就相当于test命令
test $a = $b = [ $a = $b ]  注意:[ ] 两端有空格

test的数字对比
=
!=
-eq		##等于
-ne		##不等于
-le		##小于等于
-lt		##小于
-ge		##大于等于
-gt		##大于

test的条件关系
-a	##并且
-o	##或者

test对值是否为空的判定
-n	##nozero    判定内容不为空
-z	##zero	    判定内容为空

&&	符合条件作动作,是
||	不符合条件作动作,非

Inserte la descripción de la imagen aquí

Escriba un script de shell para completar los siguientes juicios:
user_check.sh + usuario Los
tipos de usuario son: superusuario, usuario del sistema, usuario común;
Nota: / dev / null puede entenderse como un bote de basura; puede usar $ &> / dev / null para juzgar ¿Existe $:

Inserte la descripción de la imagen aquí

Resultados de la prueba:

Inserte la descripción de la imagen aquí
Hay errores en los métodos anteriores: por ejemplo: cuando el usuario es lin, el comando grep también filtrará a los usuarios de linux, lo que resultará en errores de juicio; puede cambiar grep a egrep para resolver este problema;
++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++

test对于文件的判定
-ef		##文件节点号是否一致(硬链接)
-nt		##文件1是不是比文件2新
-ot		##文件1是不是比文件2老
-d		##目录
-S		##套结字
-L		##软连接
-e		##存在
-f		##普通文件
-b		##快设备
-c		##字符设备

Los resultados experimentales son los siguientes:

Inserte la descripción de la imagen aquí
Ejemplo: escriba el script para completar las siguientes condiciones cuando
se ejecute file_check.sh.
Si el archivo de detección no se especifica después del script, aparecerá un error "No se especifica ningún archivo de detección, especifique".
Si el archivo especificado no existe después del script, se informará un error "Este archivo no existe"
cuando el archivo existe. Tipo de archivo y se muestra en la salida;

El script de shell se muestra en la figura:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/lb1331/article/details/111284236
Recomendado
Clasificación