ls
コマンドの出力を変更しています。私が望むすべてのコードを長めに実行しましたが、多くの点で改善が期待できるので、あなたの意見を求めています。私は各コマンドについて説明しますので、私はそれで何をしたいのか分かります。lsコマンドの出力を変更する
ls -l |
sed 's/total/ C FILES.c/' |
cut -b 45-100 |
grep -e "\.c" |
sed 's/C FILES.C/\nC FILES\n/' |
sed 's/[0-9]//' |
sed 's/[0-9]//' |
sed 's/[0-9]//'
ls -l
ディスプレイ "トータル:" +番号、し、行ごとに1つのファイルを表示します。ここはコードの私の長蛇の列です。
sed 's/total/' C FILES.c/
この長い部分は、 "total"行をタイトルに置き換え、次のコマンドで見られるように、この方法で字下げしなければならなかったので、名前と同じ行にありますls -r
で表示されるファイルの後者のコマンドでは、数字が世話をします。cut -b 45-100
は、ファイル名の前にあるすべてのものを削除します。最後のコマンドに "C FILES.C"の前に45桁のスペースを入れると、それはカットされ、次の55文字しか表示されません。 (55は、私が使用するファイル名を含むのに十分な大きさです)。grep -e "\.c"
は、.cで終わらないファイルを削除します。 Cファイルというタイトルはcファイルではないので、grepコマンドを使用しても消えないように、接尾辞.cを付けて書かなければなりませんでした。sed 's/C FILES.C/\nC FILES\n/'
は、.c接尾辞を削除し、改行文字を追加して、コマンドライン、タイトル、およびファイルのリストを区切ります。2番目のコマンドは、「合計」を「Cファイル」のタイトルに置き換えました。しかし、それは "合計"に続く数字に取って代わるものではなかったので、この数字はまだここにあり、私はそれを取り除きたい。コマンドは削除する必要のある番号を知らないので、1,45、または666でもかまいません。私はコマンド
sed 's/[0-9]//
を3回使って0〜9の3倍の数字を削除しました。何もしません)。数字の長さが3より大きい場合、数字は残っていますが、999以上の合計を持つとは思わないので、このコマンドを3回繰り返すだけで十分です。私は's/[0-9][0-9][0-9]//
を試しましたが、数字の長さが少なくとも3である場合にのみ動作します。それ以外の場合は何もしません。
これは私ができる最高の方法です。私はオプションなしでls
コマンドを使用しようとしましたが、それ以降はうまく動作せず、置き換える行がないのでタイトルを出力する方法がわかりませんでした。
どのように読んでいいか分かりやすくするためのアイデアやアドバイスをお待ちしています。
'find'コマンドを使ってみましたか? – Inian
lsの出力と期待される出力を解析した後に – tso
良い読み込み - 'ls'の出力を解析しない理由[ParsingLs](http://mywiki.wooledge.org/ParsingLs) – Inian