Eu sei que fc
pode ser usado para editar e executar comandos do histórico. O que eu preciso é uma maneira de construir um novo comando editando alguma string que pode vir de qualquer lugar.
Por exemplo, eu preciso de uma maneira fácil adhoc-friendly (ou seja, usando um editor, não expressões regulares) para passar o registro de data e hora que está embutido em um nome de arquivo para outro comando:
$ ls
blahblah-1542853790.bak
$ <magic command opens editor with result of command ('ls')>
$ <uses editor to change string "blahblah-1542853790.bak" to "date -d@1542853790">
$ <when exiting editor, "date -d@1542853790" is evaluated>
Thu Nov 22 02:29:50 UTC 2018
O que tentei não funciona:
$ ls | fc # Vim: Warning: Input is not from a terminal ...
$ fc -s <(ls) # -bash: fc: no command found
Note que não estou procurando uma maneira elegante de resolver esse problema específico (usando sed
/ xargs
etc.) - é apenas um exemplo.
Tags command-line bash fc