-1

テキストファイルにファイル名を含むファイル (FILEMANES.txt) を取得します。各行には、# で区切られた 1 つ以上のファイル名が含まれます。

#filename1#
#filename2#filename3#filename4#
#filename5#filename6#
....

ディレクトリの内容を参照するための for ループでは、ディレクトリ内で見つかった各ファイル名を、FILEMANES.txt で見つかった各 filenameX と比較する必要があります。

私は sed や awk でそれを行うことができると思いますが、いくつかのスキルが欠けています

誰かがそれを助けることができればそれは素晴らしいことです

ありがとう

4

1 に答える 1

1

各ファイルを各名前と比較すると、非常に遅くなります。ツールに作業の一部を任せます。

for file in * ; do
    grep -o "#$file#" FILENAMES.txt
done

または、ループなしで:

ls | sed 's/^\|$/#/g'| grep -oFf- FILENAMES.txt

ファイル名にスペースやその他の特殊文字が含まれている場合、解決策はより複雑になることに注意してください。

于 2013-07-11T13:11:45.990 に答える