tcshを使用して空の代替項目を検索する方法

tcshを使用して空の代替項目を検索する方法

lsを使用して空の代替を検索しようとしていますが、何も機能しません。ファイルのリストがあります。foo.txt foouubar.txt fooubbar.txt fooubar_1.txt foounix.txt

私はただfoo.txt欲しいfoouubar.txt

私は試した:

ls foo\(*ubar\|\(\)\).txt 

しかし、結果は空です。私のコマンドラインに問題がありますか?

私はtcshにいます。

答え1

ここで動作するソリューションがありますtcsh。次のように中括弧拡張演算子を使用します{..}

$ echo foo{,uubar}.txt
foo.txt foouubar.txt

これは、文字列「foo」が交互に追加される一連の部分文字列を生成することによって行われます。この場合、最初に{,...}試みた部分文字列が何も得られないという意味を使用します。 2番目の部分文字列は「uubar」です。

引用する

答え2

lsパイプで使用すると、ファイルは一度に1行ずつ出力されるため、grep他のフィルタを使用できます。したがって、次は使用されているシェルとは無関係に機能します(ただし、別の行にファイルを作成します)。

ls | egrep "foo(uubar|)\.txt"

列を復元するには:

ls | egrep "foo(uubar|)\.txt" | column

関連情報