スペースで区切られますが、バックスラッシュスペースは無視されます。

スペースで区切られますが、バックスラッシュスペースは無視されます。
5678 []
testing,\ group []
[testing []
ip\ 5.6.7.8 []
launch-wizard-1 0.0.0.0/0
456dlkjfa []
1.2.3.4 []
test 1.2.3.4/32 4.3.2.0/23 4.3.2.0/23
default 4.3.2.0/23 4.3.2.0/23
launch-wizard-2 0.0.0.0/0
launch-wizard-3 0.0.0.0/0
2.3.4.5/32 []

上記の最初の列を取得したいのですが、問題は以下を処理する必要があることです。\ (バックスラッシュスペース)列の一部としてawk '{print $1}'私に提供する必要があります

5678
testing,\ group
[testing
ip\ 5.6.7.8
launch-wizard-1
456dlkjfa
1.2.3.4
test
default
launch-wizard-2
launch-wizard-3
2.3.4.5/32

ベストアンサー1

gnu awk()を使用すると、またはgawk次の長さ0のアサーションを使用できます。\<\>

$ echo 'a\ b c' | gawk 'BEGIN{FS="\\> +"} {print $1}'
a\ b

perlpcreしかし、残念ながら、または(例えば(?<!\\)(?<=\w)など)の成熟した項目ではありません。

$ echo 'a\ b, c' | perl -nle '@a=split /(?<!\\)\s+/, $_; print $a[0]'
a\ b,

おすすめ記事