たとえば、fileNames.txtというファイルがあります。 cat >fileNames
返品
abet
able
abacus
ファイル名を使用してabet、able、abacusを.txtファイルにする方法は?猫とタッチでパイプを使ってみました。
答え1
これを行うには、次のようないくつかの方法があります(GNU仮定xargs
)。
sed -e '/^[[:space:]]*$/d' -e 's/$/.txt/' fileNames.txt | xargs -rd '\n' touch --
fileNames.txt の各行にはファイル名が 1 つしかないとします。スクリプトsed
は空の行を削除し(@rubynorailsに感謝します)、各ファイル名の末尾に「.txt」を追加してから.txtに接続しますxargs touch
。
これを使用して、-d '\n'
xargs(スペースではなく区切り文字で改行または '\ n'のみを使用して引用符の処理を無効にするように指示するGNU拡張)の名前(改行文字を除く)と一緒にオプションを指定します。たとえば、行に「abetable」が含まれていて含まれていない場合、2つのファイルが作成されます(および)。これを使用すると、1つのファイルのみが生成されます。xargs
\n
-d '\n'
abet
able.txt
abet able.txt
答え2
読み取りコマンドを使用して、whileループで入力リダイレクトを使用できます。
while read line; do
touch "${line}.txt"
done < fileNames.txt
答え3
awk 'NF>0' fileNames.txt | while read line; do touch "${line}.txt"; done
このawk
コマンドは空行のみを削除します。
私が知る限り、その行は文字通りなので、その行の内容はすべてファイル名に書き込まれます。