shell读取文件夹
㈠ 在windows中用shell遍历一个文件夹下得所有文件并对文件执行同一个指令
你的for循环中循环的是$PATH ,他只是代表这个路径,并不表示里面的文件名。
㈡ shell怎么遍历一个文件夹下所有文件
# find . -type f
./a
./normal/log-1
./normal/log-2
./normal/log-3
通过find找到文件
那么遍历就用循环
for i in `find . -type f`
do
echo $i
done
㈢ linux shell遍历当前文件夹中的txt文件并处理生成新的文件
先以a.txt为例:
awk-vRS=""'{
n=split($0,a,"《[^》]+》");
for(i=2;i<n;i+=2)
print"《keywords》"a[i]"《/keywords》"
}'a.txt>>./newfile/a.txt
这样就行了。
为了可读性,我将一条awk语句写成了多行。
实际测试结果如下:
解说:
RS=""
将awk的记录分隔符设置为空(默认是换行符),即将整个a.txt文本看做一条记录。
n = split($0,a,"《[^》]+》");
以正则"《[^》]+》"匹配的内容作为分隔符,对文本内容进行分割并将分割结果存入数组a,分割出的数目(数组大小)即为split函数的返回值n。这里暂且不对该正则做过多解释,否则喧宾夺主,有需要请追问,我再补充。
for(i=2;i<n;i+=2)
print "《keywords》"a[i]"《/keywords》"
打印数组下标为偶数的元素并在首尾分别加上关键字标记以还原。数组下标从1开始。
其他文件可作相同处理。如果文件较多,你可以搞个循环去做。这个应该不难。
㈣ Shell获取某目录下所有文件夹的名称
方法有三,如下:
㈤ shell脚本,获取目录的结构,保存到文件
使用递归的shell脚本没有find效率高。find 是为目录搜索而优化过的程序。
#!/bin/bash
DIR="$1"
if [ -z "$2"] ;then
echo "must set 2st argument for output file ." >& 2
exit 1
fi
OUT="$2"
DIR=$(readlink -m "$DIR")
#转换成绝对路径
find "$DIR" -type "d" >"$OUT"
#搜索目录保存到输出文件。
㈥ linux shell 查找特定文件夹下,第一级目录,最新生成的文件夹
ls -alt #文件夹名#,这个是降序排列,如果要找最新的,补上管道符号就成了
ls -alt #文件夹名# | head -n 5 ##列出的是最新改动的四个,第一行记录总用量,所以只有4个
㈦ shell怎么读取文件夹中的文件名
#!/bin/bash
forfilein`lsfolder`
do
echo$file
done
文件夹名换成实际地址,
file变量有可能是子文件夹,处理前需要进行判断
㈧ linux shell如何获取最新修改的文件或者文件夹
mmin过去几分钟前修改、创建的文件,(-n)为几分钟内
㈨ Shell脚本得到文件夹大小
ls -ld 文件夹路径 | awk '{print int($5/1024)}'
或者:
-b 文件夹路径 | awk '{print int($1/1024)}'
跟你上面计算文件大小类似,得到的都是以KB为单位的大小。
如果要以Byte为单位,不要除以1024也不要int取整就是了。
注意:Linux的ext2或ext3文件系统会给目录分配一个inode块(索引节点),用来记录文件信息,所以文件夹的大小不是简单地将其中文件大小累加就能得到的,还包括了这个索引节点的大小。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
㈩ 如何用shell获取linux目录下的文件名
获取所有常规文件的文件名并打印出来的脚本listfile.sh如下
#!/bin/bash
dir="/*"
dir=$1$dir
for f in $dir
do
if [ -f $f ]
then
echo $f
fi
done
使用方法:
$ listfile.sh PATH
原理:
PATH参数是路径,将路径后加上“/*”,代表该目录下的所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印
举例:
ls -l
total 36
-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.sh
drwxrwxr-x 2 lipeng lipeng 4096 May 4 2015 byteorder
drwxrwxr-x 8 lipeng lipeng 4096 May 3 2015 hello
-rwxrwxr-x 1 lipeng lipeng 122 Nov 29 20:16 listfile.sh
-rw-rw-r-- 1 lipeng lipeng 177 Aug 1 03:10 main.cpp
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrix
drwxrwxr-x 5 lipeng lipeng 4096 Apr 28 2015 modbus
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtest
drwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test
$ ./listfile.sh .
./aaa.sh
./listfile.sh
./main.cpp