Můžete použít substituci příkazů:
vim $(find -name somefile.txt)
nebo
find -name somefile.txt -exec vim {} \;
Zkuste toto:
- spusťte vim
- ve vim použijte následující:
:r!find /<path> -name 'expression'
Po dokončení vyhledávání by se výsledky měly objevit ve vimu.
Nebo
Zkuste:
find /<path> -name > results.txt
vim results.txt
Pokud vám nevadí spustit příkaz znovu:stiskněte Nahoru a připojte xargs
příkaz. Nebo použijte substituci historie a spusťte
!! | xargs vim # won't work with file names containing \'" or whitespace
!! | xargs -d \\n vim # GNU only (Linux, Cygwin)
Existuje jednoduchý způsob, jak uložit výstup příkazu, který funguje v ksh a zsh, ale ne v bash (vyžaduje, aby byla výstupní strana potrubí provedena v nadřazeném shellu). Přeneste příkaz do funkce K
(definice zsh níže), která k eeps svůj výstup v proměnné $K
.
function K {
K=("${(@f)$(tee /dev/fd/3)}") 3>&1;
}
find … |K
vim $K
Automatické ukládání výstupu každého příkazu není skutečně možné se samotným shellem, musíte příkaz spustit v emulovaném terminálu. Můžete to udělat spuštěním uvnitř script
(utilita BSD, ale dostupná na většině unices včetně Linuxu a Solarisu), která ukládá veškerý výstup vaší relace do souboru (ještě je potřeba vynaložit trochu úsilí ke spolehlivé detekci poslední výzvy ve strojopisu).