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
awkpara 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 -f1lo 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 | awkcomando que sugerí.
xargs. Aunque no estoy seguro de lo que este comando debe hacer ...