【发布时间】:2014-10-31 09:45:57
【问题描述】:
我一直在尝试制作一个 shell 脚本,它会在整个文件夹中一个接一个地拆分文本文件,并将每个拆分的块存放到另一个指定的文件夹中。
这是我目前所拥有的,我知道它可能很笨重(以前从未尝试过编写 .sh):
#!/bin/bash
#File Split Automation
echo "Usage: split [Folder w/ Input] [Folder For Outputs] [Options] [PREFIX]
Options: -b [sizeMB]: Split by size
-l [No. of Lines]: Split by Lines
If No Output Folder is Defined Default is Set To: /Desktop/splitter-parts
If No Options Are Selected Default is Size=100MB"
inputdirc=$1
outputdirc=$2
spltion=$3
meastick=$4
prefixture=$5
if [ -d $1 ]
then
echo "You Picked The Folder $1 To Split Files From"
ls $1
else
exit
fi
if [ -d $2 ]
then
echo "Please Confirm Folder Path For Output $outputdirc"
else
cd /root/Desktop/
mkdir -p splitter-parts
fi
read -t 10 -p "Press Enter Or Wait 5 Sec. To Continue"
cd $2
for swordfile in $( ls $1);
do
command -p split $3 $4 -a 3 -d $swordfile $5
done
你发现有什么问题吗?因为我没有得到我想要的输出,尽管当我在拆分命令字符串中有一个文件和一个文件夹时它运行良好。
编辑::::
对不起,我很抱歉。只是有点超前了。
这是我运行它时看到的:
root@kali:~/Desktop/Wordlists# ./splitter.sh '/root/Desktop/Wordlists' ' /root/Desktop/Untitled Folder' s 100MB
Usage: split [Folder w/ Input] [Folder For Outputs] [Options] [PREFIX]
Options: -b [sizeMB]: Split by size
-l [No. of Lines]: Split by Lines
If No Output Folder is Defined Default is Set To: /Desktop/splitter-parts
If No Options Are Selected Default is Size=100MB
You Picked The Folder /root/Desktop/Wordlists To Split Files From
10dig10milup2.txt mixed.txt
10dig10miluplow2.txt movie-characters.txt
10dig10miluplow3.txt name1s.txt
((------------------CUT------------)
lower.lst xae2.txt
lower.txt xaf2.txt
mangled.lst xag2.txt
mangled.txt xah6.txt
misc-dictionary.txt
./splitter.sh: line 24: [: /root/Desktop/Untitled: binary operator expected
Press Enter Or Wait 5 Sec. To Continue
./splitter.sh: line 37: cd: /root/Desktop/Untitled: No such file or directory
split: extra operand `10dig10milup2.txt'
Try `split --help' for more information.
split: extra operand `10dig10miluplow2.txt'
Try `split --help' for more information.
split: extra operand `10dig10miluplow3.txt'
Try `split --help' for more information.
split: extra operand `10dig10miluplow4.txt'
Try `split --help' for more information.
...................MORE OF THE SAME.......
就我应该看到的而言,我还没有走那么远,显然我错过了一些步骤。
【问题讨论】:
-
“我没有得到我想要的输出”不是一个明确的问题陈述。如果您清楚地输入和期望输出并准确解释您遇到的问题,这将使我们能够更好地帮助您。
-
你认为我们能猜出什么脚本输出是对的,什么输出是错的吗?提供显示正确和错误输出的示例。
-
为什么要定义不用的shell变量?
-
Jdamian- 你指的是 $1 $2 等吗?
-
我认为 Jdamian 指的是第一个分配,例如
inputdirc=$1,然后您继续在代码中使用$1,而不是$inputdirc。祝你好运。