0

.sql ファイル名からいくつかの数値を抽出する必要があります。

echo $(find -s ~/Downloads | grep -e '\.sql' | awk -F/ '{print $NF}' | sed -n '/TDB_full/p' | awk 'END{print}' | awk '{gsub(".sql", "");print}' | cut -d "_" -f4 -f5 -f6)

これは今のところ問題ありませんが、ファイル名の長さが変わると失敗します。4桁の「2013」を検索して、「.sql」の後の数字を取得する方法はありますか?

これが見つかった場合:

grep -o '\([[:digit:]]\)\{4\}'

しかし、私には「2013」しかありません

4

5 に答える 5

0
echo "TDB_full_335.51_2013_02_14.sql"  | awk '{print substr($0,match($0,/2013/),10)}'
2013_02_14
于 2013-08-19T12:04:18.823 に答える
0

のフォルダ内のすべての.sqlファイルを検索し、日付のみを出力します。Downloads2013

$ find ~/Downloads -name "*.sql" | sed -r 's/.*(2013.*).sql/\1/'
2013_02_14

年に制限されたくない場合2013

$ find . -name "*.sql" | sed -r 's/.*([0-9]{4}_[0-9]{2}_[0-9]{2}).sql/\1/'
2013_02_14
于 2013-08-16T10:45:32.447 に答える