
README.md ファイルをすべて含む、一意の名前を持つディレクトリを約 100 個作成したいと考えています。次の内容を含むテキスト ファイル「PICOCTF.txt」を使用してこれを実行しようとしました。
vault-door-1
whats a net cat
strings it
Easy1
logon
13
caesar
dont-use-client-side
Bases
First Grep
So Meta
shark on wire 1
extensions
What Lies Within
la cifra de
picobrowser
asm1
Tapping
Flags
Based
Mr-Worldwide
plumbing
vault-door-3
rsa-pop-quiz
Client-side-again
Pitter, Patter, Platters
Web Gauntlet
asm2
m00nwalk
WhitePages
c0rrupt
vault-door-4
like1000
Guessing Game 1
droids0
mus1c
m00nwalk2
waves over lambda
messy-malloc
flag_shop
Investigative Reversing 0
asm3
miniRSA
vault-door-5
reverse_cipher
Irish-Name-Repo 1
shark on wire 2
Guessing Game 2
OTP Implementation
Investigative Reversing 2
droids1
Investigative Reversing 1
WebNet0
vault-door-6
seed-sPRiNG
Irish-Name-Repo 2
1_wanna_b3_a_r0ck5tar
b00tl3gRSA2
asm4
Irish-Name-Repo 3
JaWT Scratchpad
Java Script Kiddie
Need For Speed
Investigative Reversing 4
B1ll_Gat35
droids2
vault-door-7
AES-ABC
Investigative Reversing 3
vault-door-8
droids3
Java Script Kiddie 2
WebNet1
investigation_encoded_1
b00tl3gRSA3
john_pollard
droids4
Forky
investigation_encoded_2
sice_cream
B1g_Mac
zero_to_hero
コマンドラインとテキスト ファイルのディレクトリで、ディレクトリを生成するコマンドを実行します。
xargs -a PICOLIST.txt -d '\n' mkdir
または(どちらも結果は同じ)
while read -r line; do mkdir -p "$line" ; done < PICOLIST.txt
作成はうまくいきますが、小さな問題が 1 つあります。今のところディレクトリを作成するだけだとわかっていますが、実行すると、末尾に (null?) 特殊文字が付いたファイルが作成されます。この問題の原因となるものをすべて削除するようにテキスト ファイルをフォーマットしたので (少なくとも私はそう思っていました)、これが Windows ファイル システムの問題であるかどうかはわかりません。例:
これはコマンドが実行される前です:
これはコマンドを実行した後です:
ご覧のとおり、すべてのフォルダー名の後に特殊文字 (アスタリスク? ヌル バイト? xargs で改行を解読する際に問題が発生したのでしょうか?) があります...
私の計画は、次のコードをターミナルで実行することですが、次のテキスト ファイルを使用します。
xargs -a PICOLISTFILL.txt -d '\n' touch
vault-door-1/README.md
whats a net cat/README.md
strings it/README.md
Easy1/README.md
logon/README.md
13/README.md
caesar/README.md
dont-use-client-side/README.md
Bases/README.md
First Grep/README.md
So Meta/README.md
shark on wire 1/README.md
extensions/README.md
What Lies Within/README.md
la cifra de/README.md
picobrowser/README.md
asm1/README.md
Tapping/README.md
Flags/README.md
Based/README.md
Mr-Worldwide/README.md
plumbing/README.md
vault-door-3/README.md
rsa-pop-quiz/README.md
Client-side-again/README.md
Pitter, Patter, Platters/README.md
Web Gauntlet/README.md
asm2/README.md
m00nwalk/README.md
WhitePages/README.md
c0rrupt/README.md
vault-door-4/README.md
like1000/README.md
Guessing Game 1/README.md
droids0/README.md
mus1c/README.md
m00nwalk2/README.md
waves over lambda/README.md
messy-malloc/README.md
flag_shop/README.md
Investigative Reversing 0/README.md
asm3/README.md
miniRSA/README.md
vault-door-5/README.md
reverse_cipher/README.md
Irish-Name-Repo 1/README.md
shark on wire 2/README.md
Guessing Game 2/README.md
OTP Implementation/README.md
Investigative Reversing 2/README.md
droids1/README.md
Investigative Reversing 1/README.md
WebNet0/README.md
vault-door-6/README.md
seed-sPRiNG/README.md
Irish-Name-Repo 2/README.md
1_wanna_b3_a_r0ck5tar/README.md
b00tl3gRSA2/README.md
asm4/README.md
Irish-Name-Repo 3/README.md
JaWT Scratchpad/README.md
Java Script Kiddie/README.md
Need For Speed/README.md
Investigative Reversing 4/README.md
B1ll_Gat35/README.md
droids2/README.md
vault-door-7/README.md
AES-ABC/README.md
Investigative Reversing 3/README.md
vault-door-8/README.md
droids3/README.md
Java Script Kiddie 2/README.md
WebNet1/README.md
investigation_encoded_1/README.md
b00tl3gRSA3/README.md
john_pollard/README.md
droids4/README.md
Forky/README.md
investigation_encoded_2/README.md
sice_cream/README.md
B1g_Mac/README.md
zero_to_hero/README.md
私が使用しているテキストファイルは両方とも、Notepad++で「Unix (LF)」に設定されて作成されました。
ご協力いただければ幸いです。
答え1
仮説: PICOLIST.txt
DOS/Windows の行末 (CRLF、\r\n
) を使用します。
試したコマンドは両方とも ( read
、xargs
)、Unix の行末 (LF、\n
) を想定しています。これらは\r
通常の文字として扱われます。あなたの場合、は毎回\r
渡される文字列に含まれています。mkdir
dos2unix
ファイルを変換するために使用します。
このようなファイルを Windows で編集する必要がある場合は、Unix の行末を選択できるエディターを使用してください。この機能を備えたエディターは、 の代わりに使用してdos2unix
現在のファイルを修正できます。
おそらくPICOLISTFILL.txt
同様に「欠陥」がある。
答え2
txt ファイルを元の形式で保持したい場合は、xargs コマンドの前に次のコードを付けます。
cat PICOLISTFILL.txt | dos2unix | xargs ...
この方法を実行すると、xargs 部分に「-a」または「-d」フラグは必要ありません。