.txtファイルの各テキスト行に対して新しいファイルを作成しています。
file=/tmp/textFile.txt
while IFS= read -r line
do
printf "%s\n" "$line" > /tmp/"$line"txt
done < "$file"
ファイル名が長すぎるというエラーメッセージが表示され続けます。新しいファイルのタイトルを特定の文字数に減らす方法はありますか?
ベストアンサー1
igを使用して、awk
1行の内容を最大100文字のファイル名で出力します(前に/tmp/
、後に.txt
)。
awk '{ name = "/tmp/" substr($0,1,100) ".txt"; print >name; close(name) }' /tmp/textFile.txt
たとえば、各名前と文字を使用して操作を実行する必要がある場合は、その文字をアンダースコア/
に変更します(これにより、ディレクトリ内のファイルに加えてファイルシステム内の任意のファイルが上書きされるのを防ぐことができます)。.
/tmp
awk '{ name = "/tmp/" substr($0,1,100) ".txt"; gsub("[/.]","_",name); print >name; close(name) }' /tmp/textFile.txt