lsは特定のファイルから始まります。

lsは特定のファイルから始まります。

ls特定のファイル名で始まるディレクトリにファイルを保存するには?

たとえば、私のCWDに次のファイルがあるとします。

$ ls -1
alpha.mp3
bar.xls
file1.txt
file2.txt
foo.odt
testing3.txt

"file2.txt"で始まるファイルを印刷するには:

file2.txt
foo.odt
testing3.txt

または「foo.odt」から:

foo.odt
testing3.txt

答え1

zshシェルとして使用する場合、これを使用できますグローバル予選選択したファイルの前にアルファベット順に含まれていないファイル名のみを選択します。1 。

前任者。与えられた

 % ls -1
alpha.mp3
bar.xls
file1.txt
file2.txt
foo.odt
testing3.txt

次にヘルパー関数を定義します。

 % nt() { ! [[ $NTREF > $REPLY ]] }

〜の後

 % NTREF=file2.txt; ls -1 -- *(+nt)
file2.txt
foo.odt
testing3.txt

 % NTREF=foo.odt; ls -1 -- *(+nt)
foo.odt
testing3.txt

正規化されたglobを直接使用して、リストを停止コマンドに渡すことができます。

 % NTREF=foo.odt 
 % yourcommand -- *(+nt)

  1. または、もっと簡単に使用して最後のファイル名にnt() { [[ $REPLY > $NTREF ]] }設定します。NTREF以前は正常に処理されました

答え2

ファイルリストの繰り返し中に中断されたプロセスを再開するには、ファイルリストを再生成し、再起動するファイルが見つかるまで削除できます。

set -- *
# see the "before" situation
printf '%s\n' "$@"
while [ "$1" != "file2.txt" ]
do
  shift
done
# check the results
printf '%s\n' "$@"

その後、次のファイルリストを使用してプロセスを実行できます。

$ your-process "$@"

上記は、割り込みプロセスに「自然な」拡張順序でファイルのリストが提供されることを前提としています。lsこれは、ファイルのリストを指定しない場合に実行されるアクションです。

答え3

これは後処理ソリューション、使用、sedまたはawk:

ls -1 | sed -n '/'"$filename"'/,$p'

または

ls -1 | awk '/'"$filename"'/,EOF'

その中では、例えば

filename='file2.txt'

関連情報