ファイルから指定された行を読む - BASH

ファイルから指定された行を読む - BASH

ファイルの特定の行を読みたいです。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

どうすればいいですか?考えていますが、どうすればいいかわかりませんsedIFS

私が得た結果は次のとおりです。

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

おすすめ記事