2

という名前のテキスト ファイルがあり、次のtestようなコンテンツが含まれています。

Pigeon is the world's oldest domesticated bird. 
Research suggests that domestication of pigeons was as early as ten thousand years ago.
People who keep domestic pigeons are generally called pigeon fanciers.

今、私は逆の順序で文を使用して、次のような結果が必要です。

People who keep domestic pigeons are generally called pigeon fanciers.
Research suggests that domestication of pigeons was as early as ten thousand years ago.
Pigeon is the world's oldest domesticated bird. 

どうすればいいですか?

4

8 に答える 8

7

tac次のコマンドを使用できます。

$ tac file
于 2013-09-15T16:37:48.347 に答える
1

楽しみのために:

nl file | sort -nr | cut -b8-

tail ベースのソリューションとは異なり、これはファイル全体を処理します。私はそれをエレガントまたは効率的とは呼びません。

于 2013-09-15T16:41:59.227 に答える
1

これを試しましたか?

tail -r myfile.txt
于 2013-09-15T16:39:20.707 に答える
0

バッシュ;-)

function print_reversed {
    readarray -t LINES
    for (( I = ${#LINES[@]}; I; )); do
        echo "${LINES[--I]}"
    done
}

print_reversed < file
于 2013-09-15T16:47:23.780 に答える
0

Ruby がインストールされている場合:

ruby -e "puts File.readlines('test').reverse" > test_reversed
于 2013-09-15T16:35:35.877 に答える
0

あなたはそれを使用してそれを行うことができますtail:

tail -r file.txt
于 2013-09-15T16:37:47.850 に答える
0

sort -r testするべきです。マニュアルページから:

-r, --reverse 比較結果を反転

于 2013-09-15T16:40:08.670 に答える
0

上記の返信 (コメントする評判なし):tail -r動作しません - -r オプションがなく、「無効なオプション」エラーが発生します。

場合によっては、入力ファイルが既にソートされている場合は、sort -rtac よりわずかにパフォーマンスが優れています (何らかの方法で)。

また:sed 's/^ *[^ ]* //'は eg よりも高速なcut -d\ -f2-ので、楽しい提案は次のようになります。 nl -w1 file | sort -nr | sed 's/^[^\t]*\t//'

于 2022-02-03T11:24:20.813 に答える