最初の行の単語数を数えるにはどうすればいいでしょうか3
?
入力:
There are many systems which are Unix-like in their architecture.
Not able among these are the GNU/Linux distributions.
The distinctions between Unix and Unix-like systems.
For distinctions between SUS branded UNIX architectures and other similar architectures, see Unix-like.
出力:28
答え1
awkワンライナーを使用する:
awk ' { gsub("[-/]"," ") } NR<4 { w+=NF };END { print w }' <filename>
答え2
$ head -n 3 file | tr -s '/ -' '\n\n\n' | wc -l
28
このカウントは、28
単語をスペース、ダッシュ、スラッシュで区切った場合に、指定されたテキストの最初の 3 行に対して取得されるカウントのようです。
-s
上記のコマンドは、各スペース、ダッシュ、スラッシュを改行文字に置き換えて(および のオプションを使用して連続する複数の改行文字を削除して)、最初の 3 行を 1 行につき 1 つの単語に分割しtr
、この分割によって生成された行の数をカウントします。
より自然な を使用するとhead -n 3 file | wc -w
、単語が取得されます25
。これは、が空白で区切られた単語のみをカウントし、と の両方を 1 つの単語としてwc -w
扱うためです。Unix-Like
GNU/Linux
答え3
GNUgrep
または互換バージョンの場合:
<myfile head -n 3 | grep -aEo '\w+' | wc -l
言葉その場合、1 つ以上の英数字またはアンダースコアのシーケンスになります。
答え4
head -n 4 myfile | wc -w
myfileは入力ファイル、4は最初の4行です