Estoy intentando el siguiente comando en bash-4.3
$history | grep history | xargs cut -d ' ' -f1
pero obtengo el siguiente error del delimitador del que no puedo deshacerme
corte: el delimitador debe ser un solo carácter
Intenté eliminar xargs pero da un resultado en blanco. La idea es obtener un número de comando particular del historial y luego pasarlo al historial -d para eliminar ese comando particular del historial. Aquí está solo la salida de
history | grep history
498 history | grep history | cat | xargs cut -d " " -f1
500 history | grep history | cat | xargs awk -ifs " "
501 history | grep history | xargs cut -d " " -f1
502 history | grep history | xargs cut -d '0' -f1
503 history | grep history | xargs cut -d 0 -f1
504* history |
505 history | ack history | xargs cut -d ' ' -f1
506 history | ack history | xargs cut -d ' ' -f1
507 history | ack history | cut -d ' ' -f1
508 history | grep history
awk
para obtener el primer campo. Algo así como history | awk '/command_to_search_for/ { print $1}'
. Eso devolverá el número de historial de "command_to_search_for"
cut -d' '
se dividirá en espacios ... pero hay múltiples espacios, por -f1
lo que probablemente solo devolverá un espacio. awk {print $1}
Es más fácil obtener el primer campo. Entonces podría hacerlo, history | grep command_to_search_for | awk '{print $1}'
pero eso es más simple escrito con el history | awk
comando que sugerí.
xargs
. Aunque no estoy seguro de lo que este comando debe hacer ...