Sobre a exclusão das primeiras 327 linhas em todos os arquivos .dat em uma pasta [duplicada]

1

Em uma pasta, eu tenho um número de arquivos que estão no formato de extensão .dat (ele é originalmente formato .xvg mas mudou para o formato .dat para plotar todos os outros gráficos em uma única plotagem) que contém os valores junto com alguns títulos escritos, etc., como:

 # Grace project file

#

@version 50125
@page size 792, 612

@page scroll 5%

@page inout 5%

@link page off

@map font 8 to "Courier", "Courier"

@map font 10 to "Courier-Bold", "Courier-Bold"

@map font 11 to "Courier-BoldOblique", "Courier-BoldOblique"

@map font 9 to "Courier-Oblique", "Courier-Oblique"

@map font 4 to "Helvetica", "Helvetica"

@map font 6 to "Helvetica-Bold", "Helvetica-Bold"

@map font 7 to "Helvetica-BoldOblique", "Helvetica-BoldOblique"

@map font 5 to "Helvetica-Oblique", "Helvetica-Oblique"

.

.

.

.

@    s0 errorbar riser linestyle 1

@    s0 errorbar riser clip off

@    s0 errorbar riser clip length 0.100000

@    s0 comment "rdf_CaNm.xvg"

@    s0 legend  "N1"

@target G0.S0

@type xy

0 0

0.002 0

0.004 0

ie, existem 327 linhas do arquivo de projeto #Grace (sendo a linha um) - > @tipo xy (linha 327) e 0 0 é a linha 328, 0,002 0 é a linha 329, etc.

Como posso excluir todas as primeiras 327 linhas em todos os arquivos do formato .dat que contêm a pasta (sim, todos os arquivos .dat têm as primeiras 327 linhas conforme mencionado acima) através do comando in terminal?

    
por D.H.N 13.07.2017 / 21:14

1 resposta

1

Para excluir um número de linhas de um arquivo, você fará:

sed -i -e 1,327d file.dat

Aqui você faz isso com --in-place (-i), que é altera o arquivo , e 1,327d significa excluir da linha um para 327.

Para excluir as primeiras 327 linhas de todos os arquivos, nomeie *.dat neste diretório e abaixo, use find :

find -name '*.dat' -exec sed -i -e 1,327d {} \;
    
por 13.07.2017 / 21:26