operação da linha de correspondência do comando sed

#Ver a linha antes da linha correspondente

  arquivo de gato .txt | grep  ' 5 ' -B1


#Ver as próximas duas linhas que correspondem à linha

  arquivo de gato .txt | grep  ' 5 ' -A2


#Ver duas linhas antes e depois da linha correspondente

  arquivo de gato .txt | grep  ' 5 ' -C2



#Ver o conteúdo entre duas strings (válido apenas em uma linha)

 arquivo cat .txt
 <python> 123456789 </python> arquivo cat .txt | grep -E " <python>. * </python> " | awk ' {t = $ 0; gsub (/.* <python> | <\ / python>. * /, "", t); print t} ' > new_file.txt cat new_file.txt
 123456789

  



#Ver o conteúdo entre duas strings (válido em várias linhas)

 arquivo cat .txt 
begin ok start 
1 , 2 
4 
67 
stop end ok 

# 想要 begin ok 到 end ok 内容 的 内容
# ! / bin / sh 
begin_num = ` cat -n   file .txt | grep -rin ' começam ok '  arquivo .txt | awk -F: ' {print $ 1} ' ' 
begin_string = ` arquivo cat -n   .txt | grep -rin ' começam ok ' arquivo .txt | awk -F: ' {print $ 2} ' ' 
begin_add1_num = $ (($ begin_num + 1 )) 
end_num = ` arquivo cat -n   .txt | grep -rin ' final ok ' arquivo .txt | awk -F: ' {print $ 1} ' ' 
end_string = ` arquivo cat -n   .txt | grep -rin ' final ok ' arquivo .txt | awk -F: ' {print $ 2} ' ' 
end_add1_num = $ (($ end_num-  1 ))
 #Corte 
a sequência após o primeiro começo ok da esquerda para a direita eco $ {begin_string # * begin ok}   
 sed -n " $ {begin_add1_num}, $ {end_add1_num} p "  arquivo .txt # Da 
direita para a esquerda Intercepte a primeira / depois da string
 echo $ {end_string% end ok *}

O resultado:

iniciar
 1 , 2 
4 
67 
parar

 

#Excluir uma parte do conteúdo no arquivo

#! / bin / sh 
enquanto linha de leitura
  fazer 
  echo  " $ {line} " 
  #指定行号
  para_num = ` grep -rin " $ {line} "  arquivo .txt | awk -F " : "  ' {print $ 1} ' '
   echo  " : $ {para_num} " 
  para_up_num = $ (($ {para_num} - 2 )) 
  para_dow_num = $ (($ {para_num} + 2 ))
   eco $ {para_up_num} $ {para_dow_num}
   sed -i "$ {para_up_num}, $ {para_dow_num} d "  arquivo .txt
  concluído   < config.conf 
 
echo  " todas as tabelas são processadas " #Description 
: Tente ser único no arquivo de configuração config.conf, apenas uma linha pode ser configurada no arquivo

#Modifique uma linha de conteúdo especificada no arquivo


#! / Bin / SH 
o tempo Leia Linha
  fazer 
  echo  " $ {} Linha " 
  para_old = ` grep -ri " $ {} Linha "  Arquivo .txt` 
  números # linha 
  para_num =` grep -rin " $ {} Linha "  Arquivo .txt | awk -F " : "  ' {print $ 1} ' '
   echo  " Linha de especificação de parâmetro: $ {para_num} " 
  echo  " O valor do parâmetro antes da substituição: $ {para_old} " 
  para_1 = "<para>" 
  para_2 = " \ $ (bizDate) 1 \ "SUBSTR (DEFAULT_DT, 1,4) || SUBSTR (DEFAULT_DT, 6,2) || SUBSTR (DEFAULT_DT, 9,2) \" null \ $ (bizDate) </ para> " 
  para_new = " $ {$ {Linha para_1}}} $ {para_2 " 
  Sed -i " $ C $ {} {para_num para_new} "  arquivo .txt
   echo  " valor do parâmetro após a substituição: $ para_new {} " 
 DONE   < config.conf 
 
echo  " Todas as tabelas são processadas " #Description
 
: Tente ser o mais exclusivo possível no arquivo de configuração config.conf. Somente uma linha pode ser configurada no arquivo, onde para_1 e para_2 são o conteúdo dessa linha

 

Acho que você gosta

Origin www.cnblogs.com/hello-wei/p/12721930.html
Recomendado
Clasificación