私たちがリストしたと仮定する/usr/bin
と、ls
次のようになります。
CC file2c man sscop
Mail find mandoc ssh
addftinfo finger manpath ssh-add
addr2line flex merge ssh-agent
...
しかし、使用することもできますls -1
。以下を取得します。
CC
Mail
addftinfo
addr2line
afmtodit
alias
apply
apropos
...
1行に1つずつすべてのファイル名のリストが含まれています。出力構造は次のとおりです。ファイル名、改行文字(\n
)、...
これを次にパイプできますless
。ls -1 | less
これで、現在行に含まれている文字列にコマンドを簡単に適用できますか?
正確にどのように実行されたかは重要ではなく、ステップ数が少なくなければならないということだけです。これは少ない量を使用するか!
(不可能に見えますか?)、次のようにすることができます。何とか現在行に含まれる文字列をシェル変数などに入れます。
もちろん、Xorgでは簡単です。マウスの中央ボタンを使って貼り付けるだけです。しかし、テキストモードではできるあまり複雑ではありませんか?
答え1
あなたはそれを使用することができます|
注文するファイルの一部は他のプログラムを介して転送されますが、その部分には常に少なくとも2行あります。マークでハッキングできます。tail
、しかし:
- 目的の行を一番上に置きma(または2番目の文字の場合は別の文字)を押します。
- kまたはを使用して1行上にスクロールしますUp。
- を押した|後、目的の文字をタップしてa上記の文字を置き換えます。
- input
tail -n 1 | ...
、...
この行を標準入力として使用するコマンドはどこにありますか?
tail -n 1
私たちが興味を持っている2番目の行だけを提供します。...
ラインが好きなようにしてください。
標準入力の代わりにその行をコマンドの引数として使用するには、次のようにします。使用xargs
または他の包装紙:
tail -n 1 | xargs ls -l
コマンドが何も表示されても、画面には表示されませんが、less
再パイプすることができます。
tail -n 1 | xargs ls -l | less
これは入れ子になりますless
。終了して元の状態に戻ってless
プロセスを繰り返すことができます。
コマンドがテキストエディタのようにインタラクティブで、標準入力がパイプまたは空であることを好まない場合は、次のことを使用できます。sh
中間プロセスはコマンドを実行し、ttyを再び開きます。
xargs sh -c 'vim "$@" < /dev/tty' sh
BSDにも同じことを行うオプションがxargs
あります。-o
答え2
これを達成する1つの方法は次のとおりです。
- 目的の選択開始位置に移動します(例:検索)。
- mXその後に設定表示であることを示す文字が続きます。
- 選択項目の終わりに移動します。
- |X
!
(これにより、標準入力で選択したコマンドを作成する必要があるプロンプトに切り替わります。 - 命令を入力して押します。RET