連続した数字のサフィックスを含むファイル名を選択するには?

連続した数字のサフィックスを含むファイル名を選択するには?

私は物を保存するのが好きで保存したいと思います.bash_history

スクリプトを使用してディレクトリにコピーしたいです。ここのように

#!/bin/bash
#Something here? number=~/Desktop/Coding/Bash\ Histories/bash_history "?"
cp ~/.bash_history ~/Desktop/Coding/Bash\ Histories/bash_history #$number "?"

しかし、すでになどのファイルがありますbash_historybash_history 2bash_history 3

最大数(この場合は5)を確認したいと思います。存在する場合はbash_history 5名前を付けたいと思いますbash_history 6

それならbash_history 11111名前を付けたいですbash_history 11112

ifここでどのコマンドを組み合わせて使用​​するのかわかりませんgrep

答え1

lssortおよびを使用してtailこれを行うことができます cut

まず、すべてのファイルに番号を付けるように名前をbash_historyに変更します。bash_history 1次に、次のコマンドを実行して次のファイルをコピーします。

#!/bin/bash

D=~/Desktop/Coding/Bash\ Histories

num=$(ls "$D" | cut -d ' ' -f 2 | sort -nr | head -1)
num=$(( num + 1 ))
cp ~/.bash_history "$D/bash_history $num"

ls $D"storage"ディレクトリにあるファイルのみを一覧表示します。各名前(bash_history 16パスを除く)から2番目のフィールド(number)をcut -d ' ' -f 2分割して取得します。文字列が最初に出てくるので、この方法で見つけた数字は数字順に()逆順()でソートされます。そのリスト(反対であることを覚えておいてください)から、最大数の最初の数字を選択してください。その数を増やして、次のファイルに使用します。' '16-r-n102

まず、サイズの順序(5桁など)を決定し、次にゼロを直接取得するために使用することをお勧めしますprintf %05d $num(これにより、ファイルはアルファベット順に数字の順序と同じになります(少なくとも100000に達するまで))。

関連情報