OS Xのsed - 角括弧の間のすべてのテキストを抽出します。

OS Xのsed - 角括弧の間のすべてのテキストを抽出します。

与えられたフローは次のとおりです。

[foo] 123 [bar]
[gar] dsa [har] 345
[uf] 88 [gc] 43 [br]

これを処理するためにsed(または他のもの)を使用したいので、出力は次のようになります。

foo bar
gar har
uf gc br

頑張ったcat myfile | sed -e 's/^.*\[//;s/\].*$//'

しかし、それは私に最後のインスタンスだけを与えます。

私の実際の入力は次のとおりです。

53f42d4 [the contacts are duplicated] Adding support in picking email verified users [https://trello.com/c/663]
3c454b0 [the contacts are duplicated] splitting contact by phone numbers and emails and changing contact model to contain only 1 email [https://trello.com/c/663]
0e63e5b [we should not let a user confirm his email if we have a user with this confirmed email already] better doc [https://trello.com/c/643]
02671b7 [we should not let a user confirm his email if we have a user with this confirmed email already] preventing updating email if already in used by other user [https://trello.com/c/643]

だから私は最初の行を取得したいと思います:

the contacts are duplicated https://trello.com/c/663

ベストアンサー1

awkもこれに適しています。[ または ]フィールド区切り記号でそれぞれ印刷優秀土地:

awk -F '[][]' '{for (i=2; i<=NF; i+=2) {printf "%s ", $i}; print ""}' file

sed を使用して次のように作成します。

sed -E 's/(^|\])[^[]*($|\[)/ /g' file

おすすめ記事