ファイルの末尾に単語数の結果を追加します。

ファイルの末尾に単語数の結果を追加します。

example.txt行数を数え、結果をこのファイルの末尾に追加したいと思います。どうすればいいですか?

私は試した:

wc -l > example.txt

答え1

wc -l example.txt >> example.txt

答え2

ご存知のように、wc -lにはデフォルトで結果番号とファイル名が含まれています。何らかの理由で結果の数だけを表示する方が良い場合は、次のことを試してください。

wc -l example.txt | cut -d' ' -f1 >> example.txt

したがって、example.txtが3行で始まる場合は、次のようになります。

a
b
c

上記のコマンドを実行した後、最後の数行tailビューを使用すると(この場合はほとんど行がないため、ファイル全体が表示されます)、次のようになります。

$ tail example.txt
a
b
c
3

説明する

  • wc -l example.txt結果行とファイル名のデフォルト数を提供するものが何であるかはすでにわかっています。3 example.txt
  • このcutコマンドは、行から「フィールド」を抽出するのに役立ちます。
  • -d区切り記号/フィールド区切り文字を設定するために使用され、' 'スペースで指定します。
  • この-f1メソッドは最初のフィールドを選択するため、指定された出力wc3 example.txt最初の3フィールドです。
  • >>追加して結果を3ファイルの末尾に保存します。example.txt

答え3

次のスクリプトは、ファイルがまだない場合はファイルの末尾に行数を追加し、すでに存在する場合は削除して置き換えます。

これにより、複数の「行数:」行を追加しなくても、ファイルを編集するたびにこのスクリプトを実行できます。

#! /bin/bash

count=$(wc -l "$1" | cut -d' ' -f1)

tail -1 "$1" | grep -q '^Line count: '
if [ $? ]; then
    count=$(( $count - 1 )) # don't count the 'Line count' line
    sed -i -e '$ d' "$1"
    echo "Line count: $count" >> "$1"
else
    echo "Line count: $count" >> "$1"
fi

答え4

追加ただ行数、これを試すことができます

$ cat example.txt | wc -l >> example.txt

ファイルの総行数のみが表示されます。

関連情報