次のテスト出力があります。
PASS: tests/test_mutex_rmw
PASS: tests/test_mutex_trylock
PASS: tests/test_malloc_irreg
FAIL: tests/ARMCI_PutS_latency
FAIL: tests/ARMCI_AccS_latency
PASS: tests/test_groups
PASS: tests/test_group_split
PASS: tests/test_malloc_group
FAIL: tests/test_accs
FAIL: tests/test_accs_dla
出力をフィルタリングして失敗のみを確認したいです。画面からテキストをコピーしてstdinに貼り付けてgrepに渡すと便利です。例:
grep FAIL
テキストをコピーするには、Shift-Ctrl-V(またはマウスの中央ボタン)を使用します。
私が見たいのはすべてです。
FAIL: tests/ARMCI_PutS_latency
FAIL: tests/ARMCI_AccS_latency
FAIL: tests/test_accs
FAIL: tests/test_accs_dla
ただし、代わりに貼り付けた入力が画面に表示され、バッファリングによって入力が最終出力と混在します。
$ grep FAIL
PASS: tests/test_mutex_rmw
PASS: tests/test_mutex_trylock
PASS: tests/test_malloc_irreg
FAIL: tests/ARMCI_PutS_latency
FAIL: tests/ARMCI_AccS_latency
PASS: tests/test_groups
PASS: tests/test_group_split
PASS: tests/test_malloc_group
FAIL: teFAIL: tests/ARMCI_PutS_latency
sts/test_accs
FAIL: tests/test_accs_dla
FAIL: tests/ARMCI_AccS_latency
FAIL: tests/test_accs
FAIL: tests/test_accs_dla
入力を最初にcatに送ってからgrepに渡すのは合理的ですが、cat | grep FAIL
実際には役に立ちません。バッファの混合が引き続き発生します。
もちろん、grepに渡されたファイルにデータを入れればきちんとフィルタリングが可能です。しかし、私が探しているのは、クリップボードバッファを介してターミナル出力からコピーされたテキストを簡単にフィルタリングするのに便利なツールです。これを行う最良の方法は何ですか?
同様に、画面にエコーされずに(データをコマンドの標準入力として自動的に提供する)、貼り付けを実行するにはどうすればよいですか?
1つの方法は、エコーを明示的にオフにすることです。
stty -echo; grep FAIL; stty echo
これはうまくいきますが、sttyを切り替えることなくこれを行う方法があると思います。他のシェルベースの方法を知っていますか?
私は(Debian GNU / Linuxでは)bashを使用していますが、POSIXシェルソリューションも興味深いです。
ベストアンサー1
マウスでテキストを表示したら、次を使用しますxclip
。
xclip -o | grep FAIL
またはクリップボードからコピー(Ctrl-c):
xclip -selection clipboard -o | grep FAIL
または:
xclip -sel c -o | grep FAIL
要するに。