Bashで以前のコマンドを解析する方法は?
例:
root$ ssh [email protected]
root$ echo !$ &>/tmp/foo.txt
root$ cat /tmp/foo.txt
[email protected]
ターゲット:1.2.3.4
foo.txtにIPアドレスのみを送信する
awkを試してみましたが、成功しませんでした。
#doesn't work
cat /tmp/foo.txt |awk '{print $2,$3,$4}'
また、sedを使って数字を解析してみました。
#doesn't work
sed 's/.//p' /tmp/foo.txt
sed 's/[0-9]//p' /tmp/foo.txt
ガイドライン
1.2.3.4 は常に 0.0.0.0 から 255.255.255.255 までの数字です。
ユーザー名のfoo
長さに制限はありません。
[Eメール保護]はいいいえsshに渡される唯一のパラメータでなければなりません(例:ssh 1.2.3.4 -l foo)。
リソース
追加の説明
最終的な目標は、競合するSSHキーを簡単に削除する機能を.bashrcに作成することです。
root$ ssh [email protected]
#some big error message warning about man in the middle attack
root$ ssh-keygen -R 1.2.3.4
ベストアンサー1
元の構文を使用してください。
$ cat /tmp/foo.txt | awk -F@ '{print $2}'
1.2.3.4