2016-08-17 1 views
0

私は新しい仕事を持ち、Windows上のC++アーキテクチャの複雑な問題を設計し解決するのではなく、Linux上でbashスクリプトを使用して問題を終了する必要があります。私はbashコマンドを忘れて、.shスクリプトを書かなかった。今は環境が稼働しており、ftp経由でリモートフォルダに接続しています。 私の簡単な問題は以下の通りです: batch_something20160818012830、batch_something20160818012925、batch_something20160818013100 ..とファイル名の末尾のようなファイルがありますが、日付時刻で、例えばbatch_something20160818012830日付2016年8月18日及び時間1時28分30秒、ファイル名のすべてを持っています同じ長さであり、私はすべてのファイル名をalpanumericallyより大きいいくつかのdatetimeを取得する必要があります、例えば私は8.18.2016 1:29:30より大きいので、私はテキストbatch_something20160818012930を作成し、私はこのテキストをファイル名と比較し、それよりも、上記の3からbatch_something20160818012925とbatch_something20160818013100、どのように行うのですか? ftp経由で作業する必要があるので、コマンドlsとdirを見つけました。ファイルがたくさんあるので、可能であれば、最後のファイル名だけを受け取ります。リモートフォルダ。ftp接続を介してLinuxコマンドライン(bash)で指定されたテキストよりも英数字でファイルのリストを取得する方法はありますか?

多分ls/dir --ignore = PATTERNか、何とか正規表現でls/dirを使用しますか?

EDIT:私は既にftp -i localhostで接続されています。ファイルの量は大きくなる可能性がありますので、パイプを使用してコマンド間でいくつかの半分の結果を送るのは良くないと思います。それに関する仕事は自分のものです。

+0

SSH経由で接続できません。 –

+0

私はftpでもsftpでもできないと思います。 –

答えて

0
lftp "-e cls -1 --sort name; quit" ftp://ftp.kernel.org:/pub/linux/kernel/v4.x|sed -n '/patch-4.5.xz/,$p' 

使用lftp、FTP、アルファベット順に順位(--sort)でリストを取得、終了しlogintします。次にそれをsedに配管します。これは一致する前に見出し行を切ります。patch-4.5.xzのように、アルファベット順に大きなファイルリストをstdoutに入れます。

+0

答えに何らかの説明を追加できますか?そのコード行が何をしているかは分かりません。 –

+0

それは明白な解決策ですが、私は文法についてはわかりませんでしたが、すでにftpを使用していて、別のプログラム(lftp)を使用しないでください。 問題は、1つのプログラムを使用してファイル名をフィルタリングして、ファイル名が大量になるため、ファイル名がパイプ経由で別のプログラムに送信されないようにすることです。 –

+0

パイプを使用しないでください。シェルはパイプに大きく依存しているので、シェル以外の言語(例えば、python、perl)を使用してください。 –

関連する問題