0
#!/bin/bash
## 将当前目录下的.txt文件移动到/shelltest/b/,并按文件大小显示出移动后/shelltest/
b/下的内容
for i in `find *.txt`;do
mv $i /shelltest/b/
done
echo `ls -S /shelltest/b/`
今天正式开始练习shell ,这个练习题一开始感觉很容易,后面又感觉有点难,那个按文件大小显示目录里的内容一开始想到用sort,后面查了下发现ls -S也有排序功能,用这个更好点,我在机子上试验成功了,应该是正确的
## 将当前目录下的.txt文件移动到/shelltest/b/,并按文件大小显示出移动后/shelltest/
b/下的内容
for i in `find *.txt`;do
mv $i /shelltest/b/
done
echo `ls -S /shelltest/b/`
今天正式开始练习shell ,这个练习题一开始感觉很容易,后面又感觉有点难,那个按文件大小显示目录里的内容一开始想到用sort,后面查了下发现ls -S也有排序功能,用这个更好点,我在机子上试验成功了,应该是正确的
0
我这样的写法貌似没错吧?题目中的要求都达到了,而且比楼主的更好懂些
lin19890913 发表于 2016-3-1 16:09
#!/bin/bash
## 将当前目录下的.txt文件移动到/shelltest/b/,并按文件大小显示出移动后/shelltest/
b/下 ...
我这样的写法貌似没错吧?题目中的要求都达到了,而且比楼主的更好懂些
0
#!/bin/bash
dir1=$1
dir2=$2
cd $dir1
find . -type f |grep ".*txt" |cut -d'/' -f2 > /tmp/1.txt
for m in `cat /tmp/1.txt`
do
mv $m $dir2
done
cd $2
ls -l |grep ".*txt"|sort -t' ' -n -k5 |awk -F' ' '{print $9}' > /tmp/2.txt
for i in `cat /tmp/2.txt`
do
echo $i
cat $i
done
dir1 是源目录 dir2目标目录
可以将源目录下的。txt结尾的文件移动到dir2并按照从小到大的排序输出文件内容。
dir1=$1
dir2=$2
cd $dir1
find . -type f |grep ".*txt" |cut -d'/' -f2 > /tmp/1.txt
for m in `cat /tmp/1.txt`
do
mv $m $dir2
done
cd $2
ls -l |grep ".*txt"|sort -t' ' -n -k5 |awk -F' ' '{print $9}' > /tmp/2.txt
for i in `cat /tmp/2.txt`
do
echo $i
cat $i
done
dir1 是源目录 dir2目标目录
可以将源目录下的。txt结尾的文件移动到dir2并按照从小到大的排序输出文件内容。
0
- #!/bin/bash
- # Author: Maria.
- # Date & Time: 2016-03-01 20:32:17
- # Description: Please Edit here.
- todir=$1;
- if [ -z $todir ]
- then
- read -p "input the dir for move to:" todir
- fi
- if [ ! -d $todir ]
- then
- mkdir -p $todir
- fi
- filelist=`find . -type f -name '*.txt'`
- for txtfile in $filelist
- do
- mv $txtfile $todir
- done
- /bin/ls -Slr $todir
编辑回复