Вы пробовали:
ssh -t username@hostname /bin/sh
Также вы можете попробовать скопировать по scp отсутствующую libncursesw.so.5 на ваш удаленный компьютер.
lex
(o flex
en sistemas Linux )es un programa que toma una especificación de escáner/lexer y la convierte en un programa C. Su especificación de escáner es de naturaleza similar a un programa awk
, pero donde awk
está orientado a registros, lex
está "orientado a caracteres".
Usando lex
con la siguiente fuente enlexer.l
:
%x OUTPUT
%%
int quoted = 0;
^[0-9]*[ \t]*"/test1/" { BEGIN OUTPUT; ECHO; }
<OUTPUT>\n { if (!quoted) { BEGIN 0; } ECHO; }
<OUTPUT>[^\\]["] { quoted = !quoted; ECHO; }
<OUTPUT>. { ECHO; }
.|\n ;
Este escáner utiliza un estado OUTPUT
para realizar un seguimiento de si queremos que se emitan los caracteres actuales o no. Entramos en este estado con BEGIN OUTPUT
cuando encontramos una línea que se parece a
<number> /test1/
(esto es manejado por la primera regla ). Salimos de este estado cuando finaliza una línea y actualmente no estamos escaneando una cadena entre comillas (, esto lo maneja la segunda regla ).
Una cadena entre comillas se inicia y finaliza con un -carácter escapado "
(la tercera regla ). Todos los demás caracteres se pasan tal cual sin acción (la cuarta regla ).
Mientras no esté en el estado OUTPUT
, ignoramos todo (la última regla ).
Tenga en cuenta que este es un escáner improvisado escrito para sus datos particulares. No maneja cadenas entre comillas que terminan con una barra invertida escapada ("some data \\"
), pero funciona con los datos que ha mostrado.
Construyéndolo:
$ make lexer
lex -o lex.lexer.c lexer.l
cc -O2 -pipe -o lexer lex.lexer.c -ll
rm -f lex.lexer.c
(en Linux, cuando se usa flex
,puede que tenga que utilizarmake lexer LDLIBS=-ll
)
Usarlo:
$./lexer <file
20 /test1/catergory="Food"
20 /test1/target="Adults, \"Goblins\", Elderly,
Babies, \"Witch\",
Faries"
20 /test1/type="Western"
20 /test1/end=category
20 /test1/Purpose=
20 /test1/my_purpose="To create
a fun-filled moment"
20 /test1/end=Purpose