Colocando linha de um arquivo no nome do arquivo

1

Eu tenho um script executável hdsentinel e quando digito

./hdsentinel 

No terminal, recebo informações sobre minha saúde no HDD.

Quando eu digito:

./hdsentinel >hd.log

Eu recebo toda essa informação no arquivo hd.log .

No local /home/user/Desktop , tenho um exemplo de arquivo. Em nome do arquivo acima de hd.log, quero inserir a terceira linha do exemplo de arquivo (a terceira linha é 192.168.1.1) e o resultado é hd192.168.1.1.log . Como fazer isso?

    
por Savke 22.05.2018 / 13:50

1 resposta

1

Tente isso, Aqui estou usando sed para imprimir a enésima (terceira) linha de um exemplo de arquivo e usar o resultado da expressão $(sed '3q;d' <example-file-path>) no nome do arquivo de saída

./hdsentinel > "hd$(sed '3q;d' /home/user/Desktop/example).log"

Explicação:

sed 'NUMq;d' file

Onde NUM é o número da linha que você deseja imprimir; assim, por exemplo, sed '3q; d' arquivo para imprimir a terceira linha do arquivo.

NUMq será encerrado imediatamente quando o número da linha for NUM .

d excluirá a linha em vez de imprimi-la.

Assim, todas as linhas, exceto a NUMTH, serão excluídas porque o q faz com que o restante do script seja ignorado ao sair.

    
por 22.05.2018 / 14:02