sed: -e expressão # 1, char 4: comando desconhecido:

1

Alguém poderia me dizer o que essa resposta significa?

sed: -e expression #1, char 4: unknown command: '
'

Eu entendo quando uso:

sed -n "$num"p $javaFile >> ~/Desktop/$1_sql.txt
for i in 'seq 5 $max'
do
    lineNum=$(($num + $i))
    echo $lineNum
    sed -n "$lineNum"p $javaFile >> ~/Desktop/$1_sql.txt
done

Onde $ javaFile é um arquivo java e num é um inteiro.

    
por gkmohit 23.10.2014 / 20:52

1 resposta

1

Seu roteiro está OK. É o terminador de linha fazendo com que ele não funcione, provavelmente. Você pode verificar o terminador de linha com

file YourScriptFile

Se ele retornar algo como "... com terminadores de linha CRLF", você poderá alterar o terminador de linha CRLF para LF usando

flip -u YourScriptFile

Execute o arquivo de script novamente.

P.S. Existe uma solução rápida e suja para o seu problema

cut -d $'\n' -s -f ${num},$((num+5))-$((num+max)) $javaFile

-d $ '\ n' significa que estamos usando \ n como delimitador e -f $ {num}, $ ((num + 5)) - $ ((num + max)) significa os campos (nesta situação , linhas) que você quer. campos são uma lista, que pode ser 1-3, 1,3-10 etc.

    
por 17.11.2014 / 07:46

Tags