0

だから私はLinuxが初めてで、echoコマンドを学ぼうとしています

私の最初の質問は、そのディレクトリではなく、拡張子.txtの特定のディレクトリにあるすべてのファイル名(コンテンツではない)を表示しようとしているということです

私はこれを試しまし cd /directory/ | echo *.{txt}たが、うまくいきません

同様に、「the」で始まり、その後に任意の 2 つの数字が続くすべてのファイル名 (コンテンツではない) を表示したい echo the[0-9][0-9]*が、構文が正しいとは思わない場合はどうでしょうか。

最後に、3 文字以上のファイルを表示したいが、「the」で始まらない場合はどうすればよいですか? ... <- これを行う方法がわかりません

どんな助けと明確化も私に利益をもたらすでしょう、前もって感謝します!

4

5 に答える 5

1

あなたがやろうとしていることは、lsコマンドの引数として適切なパターンを使用することで達成できます:

ls /directory/*.txt

関係する限りecho、それはその引数を表示するだけのコマンドです。

于 2012-09-14T18:32:41.250 に答える
0

ファイルの内容を表示したい場合は、cat. cat /directory/*.txt他の場合も同様です。

于 2012-09-14T18:33:41.470 に答える
0
cd /directory/ && echo *.txt

しかし、それはそこにいないわけではありません。あなたはできる

(cd /directory/ ; echo *.txt )

コマンドの実行後に戻りたい場合。

echo the{0..9}{0..9}*
ls| grep -v ^the

はい、ファイルの内容が必要な場合は、最後のケースのcat代わりにand を使用する必要がありますecho

cat $(ls|grep -v ^the)

(ファイルにスペースが含まれている場合、最後のコマンドがより複雑になることに注意してください)

于 2012-09-14T18:32:58.330 に答える
0

lsリストコマンド( )またはfindコマンドのいずれかが必要だと思います。

ls /some/path *.txt


find /some/path *.txt

ls比較的単純ですが制限があります。 findやや複雑ですが、より優れた機能と柔軟性を備えています。

于 2012-09-14T18:31:45.903 に答える
0

質問1:

    ls /some/dir/*.txt

質問2:

    ls /some/dir/the[0-9][0-9]*.txt

質問 3:

    ls /some/dir/*.txt | awk '{if(length($1) > 3 && substr($1,0,3) != "the"){print $1}}'
于 2012-09-14T18:46:55.520 に答える