Bash - 前のコマンド引数の分割

Bash - 前のコマンド引数の分割

Bashで以前のコマンドを解析する方法は?

例:

root$ ssh [email protected]
root$ echo !$ &>/tmp/foo.txt
root$ cat /tmp/foo.txt
[email protected]

ターゲット:
1.2.3.4foo.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

おすすめ記事