echo comando completo para arquivar

0

Eu tenho o seguinte comando

echo “more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST” >> NOTNY.sh && chmod 0777 NOTNY.sh 

No entanto, quando executo o comando e vejo o conteúdo de NOTNY.sh, ele contém

“more PHONEBOOK.lst

Deve conter

more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST

Como copio o texto do comando e não o resultado que estou obtendo?

    
por John Hamlett IV 15.10.2017 / 23:49

1 resposta

1

Em vez de citações "inteligentes", use "aspas duplas" normais:

printf "%s\n" "more PHONEBOOK.lst | awk '!/ NY /' | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 

Ou, salvando uma chamada desnecessária para more , já que o awk irá ler os arquivos que você diz para:

printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k1 | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 

Ou, como o segundo sort substituirá o primeiro:

printf "%s\n" "awk '!/ NY /' PHONEBOOK.lst | sort -k4 | tee PHONENOTNY.LST" >> NOTNY.sh && chmod 0777 NOTNY.sh 
    
por 16.10.2017 / 01:17

Tags