Como usar “wc -l” nessa linha? Contar linhas dentro do script de shell e gerar o valor de contagem apenas [closed]

0
#!/bin/bash

/abc/qwerty/AAAooo/testing/CBA_Car/Config/Test_Ctr.env

OUTPUT_FILE_NAME=$1
DATE=$2

cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}

Como eu executo uma contagem dentro deste script e só envio a contagem? De alguma forma eu preciso poder contar as linhas dentro deste script de shell e gerar o valor de contagem. Acho que posso precisar fazer algo assim:

cat filename.txt | wc -l

No entanto, não tenho certeza de como inseri-lo corretamente para que a sintaxe funcione bem. Isso continua me dando um erro. A contagem precisa ser feita nesta linha:

cp /abc/section/AAAooo/CBACenter/slack_2010-05-1.txt ${OUTPUT_FILE_NAME}
    
por ihoaxed 15.11.2018 / 22:25

2 respostas

0

Você pode fazer isso abaixo do método

#!/bin/bash
cp $1 $2
wc -l $2

O script acima copiará o conteúdo de $ 1 (arquivo1) para $ 2 (arquivo2) e depois de ser copiado para o segundo arquivo. ele irá imprimir a contagem de linhas no arquivo2

Devemos executar o script como abaixo

sh scriptname file1 file2

$1=file1
$2=file2
    
por 16.11.2018 / 04:16
1

cp (normalmente) não produz nada. Se você usar cp -v , ele mostrará o nome de cada arquivo que está copiando, mas não o conteúdo deles.

Ambientes UNIX-like são geralmente muito bons em ter ferramentas que fazem exatamente um trabalho, e o fazem bem. Contar as linhas em um arquivo (o trabalho de wc ) não está no domínio de uma ferramenta cujo trabalho é copiar arquivos de um local para outro (por exemplo, cp ).

Se você quiser contar as linhas em um arquivo e também copiá-lo, será necessário executar essas duas tarefas separadamente.

$ cp /old/path/to/file /new/path/to/file
$ filelength="$( wc -l < /path/to/file )"
    
por 15.11.2018 / 23:24