grep +はjarファイルで、jarで終わるすべてのファイルを探します。

grep +はjarファイルで、jarで終わるすべてのファイルを探します。

このようにして、すべての.jarファイルのリストを取得できます。

#  su -l hdfs -c " hdfs dfs -ls /home/test/jt/*.jar "
-rw-r--r--   3 hdfs hdfs     501879 2019-03-04 10:35 /home/test/jt/cfjrfr-3.8.1.jar
-rw-r--r--   3 hdfs hdfs     870215 2019-03-04 10:35 /home/test/jt/dhe-1.2.1.jar
-rw-r--r--   3 hdfs hdfs    2734339 2019-03-04 10:35 /home/test/jt/34343-25.1-jre.jar
-rw-r--r--   3 hdfs hdfs      30053 2019-03-04 10:35 /home/test/jt/23424.jar
-rw-r--r--   3 hdfs hdfs      16481 2019-03-04 10:35 /home/test/jt/h324.jar
-rw-r--r--   3 hdfs hdfs      29725 2019-03-04 10:35 /home/test/jt/3223kj3.jar

また、grepを使用して別のアプローチを試しましたが、この構文は出力を返しません。

 su -l hdfs -c " hdfs dfs -ls /home/test/jt" |  grep  "*.jar$"

私はどこで間違っていますか?

ベストアンサー1

*これは重複します。正規表現では、*前の記号がゼロを含む複数回表示されることを指定するために使用されます。先行記号なしで使用することは意味がないので、この特別な場合には記号自体がgrep照会されます*(通常、この目的のためには記号の前になければなりません\)。

..djarすべてのシンボルを一致させるには特別な意味もあるので、偽の拡張子がある場合(たとえば、拡張子のないファイルなど)を処理するには、jarそのシンボルも前に追加する必要があります\

簡単に言えば、以下が必要です。

su -l hdfs -c " hdfs dfs -ls /home/test/jt" |  grep  "\.jar$"

おすすめ記事