Unixでは、1単語だけを検索します。

Unixでは、1単語だけを検索します。

次の内容を含むファイルをキャプチャする方法はありますか?

field1,field2,field number 3,field4,field5

field1,field2,field3,field4,field5

(一部のフィールドにはスペースがあり、一部のフィールドにはスペースはありません。)

$1 と $3 を使って印刷したいのですが、awkフィールド 3 には空白なしで行だけを印刷します。
awkで次から始めて終わるものだけを印刷する方法があるかどうかわかりません。

答え1

awk -F, '$3 !~ / / {print $1,$3}' input-file

答え2

フィールド 3 の行にスペースはありません。

awk -F, '{n=split($3,a," ");if(n==1){print $1,$3}}' filename

答え3

perl -F, -lane '$F[2] =~ /\s/ || print "@F[0,2]"' yourfile

sed -ne 's/^\([^,]*\),[^,]*,\([^ ,]*\)\(,.*\)\{0,\}$/\1 \2/p' yourfile

while IFS=, read -r f1 x f3 x; do case $f3 in *" "* ) : ;; * ) echo "$f1 $f3" ;; esac; done < yourfile

関連情報