Procesamiento de texto en el caparazón tres espadachines grep, sed, awk

comando grep

Formato 1.grep

   grep root passwad	          在passwd中过滤root
    
   grep ^root passwd	          过滤以root开头的信息
    
   grep root$ passwd	          过滤以root结尾的信息
    
   grep -i root passwd	          忽略大小写
    
   grep -E "\<root" passwd	      root字符之前不能有字符
    
   grep -E "root\>" passwd        root字符之后不能有字符
     
   grep -3 lebron passwd	      显示关键字与其前后三行
    
   grep -n lebron passwd 	      显示匹配行所在行号
    
   grep -A3 lebron passwd 	      显示匹配行以及下面3行
    
   grep -B3 lebron passwd	      显示匹配行以及上面3行
    
   grep -v	                      反向过滤

grep root passwd filtro root en passwd

grep -i root passwd filter root en passwd (ignorar mayúsculas y minúsculas)
Inserte la descripción de la imagen aquí

grep -i ^ root passwd Líneas de filtro que comienzan con root en passwd (ignorando mayúsculas y minúsculas)

grep -i root $ passwd filtra las líneas que terminan con root en passwd (ignorando mayúsculas y minúsculas)

grep -iE “^ root | root $” passwd comienza con root o termina con root

grep -iE "^ root | root $" passwd -v elimina el principio o el final de la raíz
Inserte la descripción de la imagen aquí

grep -iE "<root" passwd sin caracteres antes de root

grep -iE "root>" passwd sin caracteres después de root

grep -iE "<root>" passwd root no puede tener caracteres antes y después

Inserte la descripción de la imagen aquí

grep -2 ROOT passwd muestra la línea de la palabra clave y las dos líneas antes y después de ella

grep -B2 ROOT passwd muestra la línea de la palabra clave y las dos líneas antes de ella

grep -A2 ROOT passwd muestra la línea donde se encuentra la palabra clave y las siguientes dos líneas

grep -n ROOT passwd muestra la línea de la palabra clave y su número de línea
Inserte la descripción de la imagen aquí

2. Reglas de coincidencia de números de caracteres de Grep

    w...s	        w开头,s结尾中间任意3个字符
     
    ....s	        s结尾前面任意4个字符
     
    "ws*"	        w、s出现任意次
     
    "ws?"	        w、s出现0-1次
     
    "ws+"	        w、s出现1-任意次
      
    "ws{5}"	        出现5次
     
    "ws{3,5}"	出现3-5次
     
    "ws{,5}"	出现0-5次
     
    "ws{0,5}"	出现0-5次
     
    "ws{2,}"	出现2-任意次
     
    "(ws){2}"	“ws”这个字符作为整体出现2次

grep -E "w ... s" westos

grep -E "... s" westos

grep -E "en ..." westos

Inserte la descripción de la imagen aquí

grep -E "ws *" westos

grep -E "ws?" Westos

grep -E "ws +" westos

Inserte la descripción de la imagen aquí

grep -E "ws {4}" westos

grep -E "ws {2,4}" westos

grep -E "ws {, 4}" westos

grep -E "ws {3,}" westos

Inserte la descripción de la imagen aquí

grep -E "(gb) {2}" westos gb aparece dos veces como un todo

grep -E "(gb) {, 2}" westos gb aparece como un todo dos veces como máximo

grep -E "w (gb) {1,2} s" westos entre w y s gb aparece como un todo como máximo dos veces
Inserte la descripción de la imagen aquí

comando sed

    p	        打印(需加 -n)
    d	        删除
    a	        追加
    i	        插入
    c	        更改/替换
    w	        写入
    r	        整合文件
    's/xx/xx/g'	字符替换
  1. p imprimir

sed -n '3p' westos muestra la tercera línea de westos

sed -n '3,7p' westos muestra westos de 3 a 7 líneas

sed -n '3p; 7p' westos muestra el contenido de las líneas 3 y 7 de westos

sed -n '$ p' westos muestra la última línea de westos

Inserte la descripción de la imagen aquí

sed -n '/ ^ daddy / p' passwd líneas de visualización que comienzan con daddy

sed -n '/ bash $ / p' passwd muestra las líneas que terminan en bash
Inserte la descripción de la imagen aquí

  1. d eliminar

sed '1,2d' westos elimina las filas 1 y 2 en westos y muestra

sed '1d; 4d' westos elimine las filas 1 y 4 en westos y muestre

sed '/ ^ p / d' westos eliminar la línea que comienza con p en westos y mostrar

sed '/ g $ / d' westos eliminar la línea que termina con g en westos y mostrar

sed '/ g $ /! d' westos eliminar y mostrar las líneas distintas de g que terminan en westos (la operación inversa del paso anterior)

Inserte la descripción de la imagen aquí

  1. un apéndice

sed'aoligay 'westos agregar oligay después de cada línea de westos

sed '$ aoligay' westos agregar oligay al final de westos

sed '1aoligay' westos agregar oligay después de la primera línea de westos
Inserte la descripción de la imagen aquí

sed '/ gg / aoligay' westos / gg / significa agregar después de esta línea

sed '/ pig / aoligay \ nbro' westos \ n es una nueva línea
Inserte la descripción de la imagen aquí

  1. yo inserto
i与a的不同在于,a在指定行后追加,i在指定行前插入

sed '3i hhhhhh' westos inserte hhhhh antes de la tercera fila de westos

sed '$ i hhhhhh' westos inserte hhhhh antes del final de westos

sed '/ pig / i hhhhhh' westos inserte hhhhh antes de la línea / pig / en westos

sed '/ pig / i hhhhhh \ ngg' westos inserta hhhhh gg antes de la línea / pig / en westos
Inserte la descripción de la imagen aquí

  1. c cambio

sed '$ c dsb' passwd reemplazar la última línea con dsb

sed '/ bash $ / c dsb' passwd reemplazará la línea que termina en bash con dsb

sed '/ ^ lbj / c dsb' passwd reemplazará la línea que comienza con lbj con dsb
Inserte la descripción de la imagen aquí

  1. w escribo

sed '/ hey / w archivo' westos
Inserte la descripción de la imagen aquí

  1. r integración

sed 'archivo 2r' westos fusiona el contenido del archivo en la segunda línea de westos

sed '$ r file' westos fusiona el contenido del archivo al final de westos
Inserte la descripción de la imagen aquí

  1. reemplazar

sed '1,3s / bash / dunk /' passwd Reemplaza bash en las líneas 1 y 3 en passwd con dunk

sed's / lbj / kobe / g; s / bash / gkd / g 'passwd reemplaza todos los lbj en passwd con kobe; reemplaza todos bash con gkd

sed '/ westos /, / zxn / s / bash / hhh / g' passwd reemplaza el bash entre westos y zxn en passwd con hhh
Inserte la descripción de la imagen aquí

sed /// @ / g 'passwd reemplaza todo / en passwd con @

sed's @ / @: @ g 'passwd tiene el mismo efecto que el comando anterior, excepto que el delimitador se cambia a @

Inserte la descripción de la imagen aquí

comando awk

    格式:
     
    awk  -F  分隔符  BEGIN{}{}END{}  filename
     
    NR	        行数
    NF	        每行的列数
    FILENAME	文件名称本身
    “westos”	字符串
    $1	        指定列数

awk -F: '{print NR}' passwd muestra todas las líneas del archivo

awk -F: '{print NF}' passwd muestra el número de columnas en cada línea del archivo

awk -F: '{print $ 1}' passwd muestra el contenido de la primera columna del archivo
Inserte la descripción de la imagen aquí

awk -F: '{print FILENAME}' passwd muestra el nombre del archivo (el archivo original se mostrará varias veces si hay varias líneas)

awk -F: '{print “ohou”}' passwd muestra la cadena de entrada (el archivo original tiene algunas líneas y se mostrará varias veces)
Inserte la descripción de la imagen aquí

/bash$/	                  条件:以bash结尾
/条件1/ | | /条件2/	  条件1或条件2
/条件1/ && /条件2/	  条件1、2同时成立

awk -F: 'BEGIN {print "name"} / bash $ / {print $ 1} END {print "over"}' passwd

awk -F: 'BEGIN {print "name"} / bash / ∣ ∣ / nologin / || / nologin/ / n o l o g i n / {print $ 1} END {print "over"} 'passwd

awk -F: 'BEGIN {print “name”} / bash $ / || / ^ root / {print $ 1} END {print “over”}' passwd

awk -F: '$ 1 ~ / root / {imprimir $ 1}' passwd

awk -F: ' 7 / nologin 7 ~ / nologin7 / n o l o g i n  / {imprimir $ 1} 'contraseña
Inserte la descripción de la imagen aquí

Deberes

Ejercicio 1:

Enumere todos los nombres de usuario que se pueden usar en el sistema
Inserte la descripción de la imagen aquí

Ejercicio 2:

Haga un script apache.sh, de modo que después de ejecutar este script, ingrese un número para modificar el puerto httpd para ingresar un número
Inserte la descripción de la imagen aquí

Ejercicio 3:

Cuente la cantidad de usuarios que pueden ser utilizados por los usuarios del sistema y cuyo directorio de inicio no está en / home
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_42958401/article/details/108255025
Recomendado
Clasificación