Unixコマンドでファイルにテキストを入れる

Unixコマンドでファイルにテキストを入れる

Unixのシェルでtcshフォルダ名と検索したファイルの数を印刷し、それをファイルに提供したいと思います。

しかし、ちょうどフォルダ名を追加する方法がわからず、数を見つけてファイルに書き込むことができました。

my_folder.txt次のディレクトリ名のリストが含まれています。

dir_1
dir_2
dir_3
foreach a (`cat my_folder.txt`)
find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l  >check_latest.txt
end

上記のコードはファイルの数だけを出力します。たとえば、次のようになります。

10
5
4

しかし、私は次のようなものを印刷したいと思います。

dir_1   10
dir_2   5
dir_3   4

これを達成する方法がわかりますか?

ベストアンサー1

私はあなたが何をしているのか完全にはわかりませんが、おそらくあなたが望むものは次のとおりです。

foreach a (`cat my_folder.txt`) echo "$a " $(find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l)  >check_latest.txt; end

個人的には、読みやすくするために複数行に分割します。

foreach a (`cat my_folder.txt`)
do
  count=$(find ./netlists/spice/${a}.sp -newermt '8/16/2022 0:00:00' | wc -l)
  echo "$a $count"
done >check_latest.txt

おすすめ記事