tcshで特定の文字が発生した回数を見つける

tcshで特定の文字が発生した回数を見つける

ファイル名に "_"を含む特定の種類のファイルの数を見つけようとします。

foreach txt ( 'ls *.txt')
set n=0
if(grep _ txt) then
@ n = n+1
endif
end

ifステートメントが正しくないため、うまくいきませんが、txtファイルのファイル名に "_"があることを確認してから、nを1ずつ増やすように定義する方法がわかりません。

ベストアンサー1

1つの方法は、grepの代わりにシェルのglobbing機能を使用することです。

set n=0
foreach txt (*_*.txt)
    @ n++
end

他の理由で必要な場合、「if grep」構文は次のとおりです。

if ( { grep -q _ $var } ) then
  ...
endif

-qgrepに静かにして何も印刷しないように指示します。)

おすすめ記事