0

これは、タイトルで説明するのが最も簡単なものではありません。

inputfile.txtファイル名の一部を含むファイルがあります。

file1.abc
filed.def
fileq.lmn

このファイルは、実際のディレクトリの完全なファイル名を見つけるために使用する必要がある入力ファイルです。ファイル名の末尾は場合によって異なりますが、一部は常に同じです。

入力ファイルから上記のディレクトリの ls コマンド (または単純なテキスト ファイルへの ls コマンド) にテキストを grep し、awk を使用して目的の結果を完全に出力できると考えましたが、それを行うのに問題があります。 .

file1.abc入力ファイルから読み取られますinputfile.txt ディレクトリの内容に対してチェックされます。ファイルが存在する場合、ファイル名に基づく特定のディレクトリが作成されます。

(私もBusybox環境にいます..自由に使えるものはあまりありません)

このようなもの...

cat lscommandoutput.txt \
        | awk -F: '{print("mkdir" system("grep $0"); inputfile.txt}' \
        | /bin/sh

ありがとうございました。

編集:これについて明確でないことをお詫びします。出力は、inputfile.txt を使用して特定の行を grep する lscommandoutput.txt で見つかった各行の完全なファイル名である必要があります。

inputfile.txt が含まれている場合:

file1.abc
filed.def
fileq.lmn

lscommandoutput.txt には以下が含まれます。

file0.oba.ca-1.fil
file1.abc.de-1.fil
filed.def.com-2.fil
fileh.jkl.open-1.fil
fileq.lmn.he-2.fil

inputfile.txt に含まれていない余分な行は無視されます。inputfile.txt にあるものには、lscommandoutput.txt から grep された名前で作成されたディレクトリがあります。

/dir/dir2/file1.abc.de-1.fil/ <-- directory in which files can be placed in
/dir/dir2/filed.def.com-2.fil/
/dir/dir2/fileq.lmn.he-2.fil/

うまくいけば、それは少し明確です。

4

1 に答える 1

0

まず、特典の無駄な使用を獲得しますcat

第二に、あなたはこれを本当にひどく説明しました。問題を平易な英語で明確に説明できない場合でも、問題をスクリプトまたはコマンド セットに変換するのに問題があることは驚くべきことではありません。

grep -fディレクトリ名を取得するには良い方法ですが、後でそれらをどうしたいのかわかりません。

私の問題は、出力されたファイルを、フォルダーに入れたい1つのファイルで使用することです

うーん?「フォルダに入れたい 1 つのファイル」とはどういう意味ですか? ファイルはどこから来たのですか?で指定されたファイルinputlist.txtですか? 一致したディレクトリに移動しますか?

ディレクトリを作成するだけの場合は、次のことができます。

fgrep -f ./inputfile.txt ./lscommandoutput.txt | xargs mkdir

NBfgrep入力文字列が正規表現として扱われず、 などの正規表現のメタ文字.が無視されるようにすることをお勧めします。

于 2012-10-08T22:26:46.570 に答える