ファイルの特定の行を読みたいです。iptables。読みたい:そしてスペース。
ファイルテーブル
# Generated by iptables 04:13:50 2015
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --sport http --dport 1024: -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --sport https --dport 1024: -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --sport webcache --dport 1024: -m state --state ESTABLISHED -j ACCEPT
COMIT
# Completed on Mon Dec 04:13:50 2015
私のもの出力そうする必要があります。
INPUT
FORWARD
OUTPUT
どうすればいいですか?考えていますが、どうすればいいかわかりませんsed
。IFS
私が得た結果は次のとおりです。
13:50
INPUT
0]
FORWARD
0]
OUTPUT
0]
13:50
実行後:
grep -Po ':\K[^ ]*' file
13:50
その他0]
の関連項目を省略したいと思います。
私の目標はチェーン名。
ベストアンサー1
以下を使用することをお勧めしますgrep
。
grep -Po '^ *:\K[^ ]*' file
説明する:
-P
:Perl準拠の正規表現を使用します。-o
:一致する部分のみ印刷\K
:これまでに一致したすべての項目を切り取ります。[^ ]*
:空白を除くすべての項目と0回以上一致します。
出力:
INPUT
FORWARD
OUTPUT