localhostのIPアドレスの前の各行を削除したいです。以下を介してホストのIPアドレスを正常に照会しました。
grep `hostname` /etc/hosts | awk '{print $1}'
これで、sedを介してこれを達成する方法を探しています。はい(動作しません):
cat file | sed '/echo `grep `hostname` /etc/hosts | awk '{print $1}'`/,$!d'
私のコマンドをsedにどのように含めることができますか?
答え1
欲しい
sed -n "/$(hostname)/,\$ p" /etc/hosts
答え2
あなたのawkの例に基づいて望む解決策は次のとおりです。
sed -ne "s/[[:blank:]]*$(hostname)$//p" /etc/hosts
$ hostname
foo.example.com
$ grep $(hostname) /etc/hosts
10.16.161.131 foo.example.com
$ sed -ne "s/[[:blank:]]*$(hostname)$//p" /etc/hosts
10.16.161.131
grep
ところで、パイピングに関連するコマンドのリストを作成するたびに、次のことを行いますawk
。
$ awk "/$(hostname)/"'{print $1}' /etc/hosts
10.16.161.131