カウントダウンとリスト+高度な機能

カウントダウンとリスト+高度な機能

いくつかの質問があります。

/group/book/four/wordにあるファイルの行を、含まれている行数に基づいて並べ替えて一覧表示しました。

$ wc -l /group/book/four/word/*|sort -n

...わかりました:

2 /group/book/four/word/wer.txt
2 /group/book/four/word/rti.txt
3 /group/book/four/word/cool.txt

これが私が欲しいです!完璧。

しかし、今作成されたリストにファイル名のみを含めたいと思います。たとえば、次のようになります。

wer.txt
rti.txt
cool.txt

「od」コマンドを使用してこれをどのように実行できますか?

上記で得られた結果行の先頭にある数字を削除するには、「sed」をどのように使用しますか?最初の2行に対してのみ同じことをどのように実行できますか?

答え1

パス名拡張子を持つファイルのリストが表示されます。

cd /group/book/four/word
echo *
# or into a file
echo * >/path/to/filelist.txt

最初から最初のスペース(またはスペースグループ)を含む1行のすべてのコンテンツを削除できますsed

sed 's/^[^ ]  *//g'

od私はこれがどんな関係があるかわかりません。

sedたとえば、3行目で終了するようにするには、最初の2行に制限できます。

sed -e 3d -e 's/^[^ ]  *//g'

答え2

私はsedその後に入れて、あなたが望むすべてのファイルを一度に書くsortようにします。w

wc -l /group/book/four/word/*|sort -n | 
sed 'w ./not_as_yet_touched.txt
 1,2s/^[0-9 ]*//w ./first_two_lines_without_line_numbers_or_leading_spaces.txt
    s|.*/||w ./everything_up_to_first_slash_trimmed.txt'

作成したように、sed上記のすべてのコマンドを実行した結果はまだ自動的に印刷されますが、結果は端末に表示されます。(あるいはどこにstdout行っても)最後のファイルの内容だけが忠実に反映されます。残りの2つは行wサイクルで異なる時間に記録されるため、内容も異なります。sed

しかしod…まあ…odそうではありません。限界データが多すぎますダンプそれ。od他のフィルタと組み合わせることができます。(例えばsed要求どおりに行の一部を消去します。しかし、/文字の間に具体的で規則的なバイト数がない場合、おそらくあまり役​​に立たないでしょう。もちろん、最後のコマンドではこれを処理する必要があります。

関連情報