ファイルから1行の一部を読みたいです。たとえば、
POP3_SERVER_NAME =ローカルホスト
私はlocalhost
sedを使って戻りたいです。
このテキストは3行目にあります。私は行を抽出するためにこれを行います:
sed -n '3p' installation.sh
部分のみを抽出する方法はlocalhost
?
ベストアンサー1
awkはおそらくここでより良いツールです。
$ cat test.dat
LINE 1
LINE 2
POP3_SERVER_NAME = localhost
「POP3_SERVER_NAME」を含む行を検索し、最後のフィールドを印刷してください。これは、POP3_SERVER_NAMEが常に3行目にあることには依存しません。これはおそらく良いことです。
$ awk '/POP3_SERVER_NAME/{print $NF}' test.dat
localhost
アプリケーションによっては、正規表現をより厳密にする必要があるかもしれません。たとえば、次の行だけを一致させたい場合があります。スタートPOP3_SERVER_NAMEへ。
$ awk '/^POP3_SERVER_NAME/{print $NF}' test.dat
localhost
sedの使用はそれほど直感的ではありません。 (ありがとうございました。行の先頭から「=」の後のオプションのスペースまでのすべてのテキストを空の文字列に置き換えます。その後、印刷します。
sed -n -e '/POP3_SERVER_NAME/ s/.*\= *//p' test.dat