プログラムから出力を取得し、次のコマンドにパイプする行をインタラクティブにフィルタリングしたいと思います。
ls | interactive-filter | xargs rm
たとえば、パターンを縮小するために一致させることができないファイルのリストがあります。interactive-filter
ファイルリストの出力をページングするコマンドが欲しいのですが、次のコマンドに転送する行をインタラクティブに指定できます。この場合、各行は削除されます。
iselect
(前のパイプからの入力として)アップダウンリストを提供し、ユーザーは(次のパイプへの出力として)複数のエントリにタグを付けることができます。
# show some available executables ending in '*sh*' to run through `whatis`
find /bin /sbin /usr/bin -maxdepth 1 -type f -executable -name '*sh' |
iselect -t "select some executables to run 'whatis' on..." -a -m |
xargs -d '\n' -r whatis
スペースバーを押してシステムのいくつかにタグを付けた後の出力:
dash (1) - command interpreter (shell)
ssh (1) - OpenSSH SSH client (remote login program)
mosh (1) - mobile shell with roaming and intelligent local echo
yash (1) - a POSIX-compliant command line shell
vipe
パイプを通過するものを(お気に入りのテキストエディタで)インタラクティブに編集できます。例:
# take a list of executables with long names from `/bin`, edit that
# list as needed with `mcedit`, and run `wc` on the output.
find /bin -type f | grep '...............' | EDITOR=mcedit vipe | xargs wc
出力(中にある間にいくつかの行を削除した後mcedit
):
378 2505 67608 /bin/ntfs-3g.secaudit
334 2250 105136 /bin/lowntfs-3g
67 952 27152 /bin/nc.traditional
126 877 47544 /bin/systemd-machine-id-setup
905 6584 247440 total
プッシュ&プルに関する注意:
iselect
何も選択されていないリストから始まります。vipe
ユーザーが削除しない限り、表示されているすべてのアイテムがパイプを介して送信されるリストから始まります。ではDebianの両方utilsのは、一緒にインストールすることができ、ディストリビューションをベースapt-get install moreutils iselect
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加