shellforin文件名|如何用shell获取linux目录下的文件名

shellforin文件名|如何用shell获取linux目录下的文件名的第1张示图

Ⅰ shell脚本 ,如果用 for in 语句,读取一行内容,急用,请高手回答。 for file in `ls -l –full-time ·

只会一个笨办法,先创建一个文件,然后读文件ls -l > tmpwhile read line; do echo $line; done < tmp

Ⅱ shell下怎么循环获取某目录下的文件名,放入变量并循环打印变量 万分感谢。

#!/bin/bashpath=$1 #这里的$1,换成你需要的路径名,或者你不换,通过shell的参数传入cd $pathfor filename in `ls`do echo $filename done

Ⅲ shell 编写一程序,列出当前目录下指定文件的文件名,文件的首行为#!/bin/bash

#!/bin/bashforfilein./*doiftest-f$filethenname=`basename$file`first_line=`sed'1!d'$file`if["$first_line"=="#!/bin/bash"]thenecho$namefifidone

我解释下代码,首先,在for循环中遍历当前目录下的所有文件,然后回外层的if判断答当前文件类型,如果是文件,则使用basename $file用来获取当前文件的文件名(包括拓展名)并赋值给变量name中,然后使用sed '1!d' $file获取文件第一行的内容并赋值给变量first_line,再在内层的if中判断第一行的内容是否是“#!inash”,如果是,则打印该文件的文件名。

ps:我也是刚学shell,写了半天才整出来,就当是自己也顺便练手了,哈哈。

我在我电脑上测试了下,没有问题,如果你还有问题请追问。

Ⅳ shell 命令如何实现获取文件名,

cd '/home/'names=`ls`for name in ${names[@]}doif [ -f $name ]thenecho $namefidone

Ⅳ 编写一个shell脚本,罗列当前路径下所有以f开头的文件名(注意:不包括文件夹)

你好,

情况一: 只列出当前文件夹下的以开头的文件,不考虑子文件夹:

———————-

#!/bin/shprint_f(){for i in `ls`;doif [[ -f $i && $i =~ ^f.* ]];thenecho $ifidone}print_f

上面的格式没有了,对着图片改下格式吧:

Ⅵ 如何用shell获取linux目录下的文件名

获取所有常规文件的文件名并打印出来的脚本listfile.sh如下#!/bin/bashdir="/*"dir=$1$dirfor f in $dirdo if [ -f $f ] then echo $f fidone使用方法:$ listfile.sh PATH原理:PATH参数是路径,将路径后加上“/*”,代表该目录下的所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印举例:ls -ltotal 36-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.shdrwxrwxr-x 2 lipeng lipeng 4096 May 4 2015 byteorderdrwxrwxr-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.cppdrwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrixdrwxrwxr-x 5 lipeng lipeng 4096 Apr 28 2015 modbusdrwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtestdrwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test$ ./listfile.sh ../aaa.sh./listfile.sh./main.cpp

Ⅶ Linux shell脚本for循环中in的[数据列表]从文件中取得

for i in $(cat test)可以试试看, for之前可以指定分隔符号.另外一般用 while read 读取文件还有其实上面两种都不好专, 现在主属流的做法还是awk和sed处理文件, 功能强 安全

Ⅷ 用shell命令对文件重命名

shell脚本实现文件改名小操作, 在此做一记录.#!/bin/bash#将数据文件.SAC名改为'<sta>.[N/E/Z].SAC'#例如2014.143.20.49.21.0000.YN.BAS.00.BHE.M.SAC改为BAS.E.SACcd ../Datafor FILE in ./*docd ./$FILEls#先ls,显示给文件下的所有文件名,对这些文件名使用awk命令,print出相应的mv *** *** 交由bash处理,给文件重命名.ls *.SAC | awk -F"." '{print "mv "$0" "$8"."$10"."$12}' | bash rename "s/BH//" * #将BH替换为"",即删除BH#rename 's/^/filt./' *.SAC #增加前缀"filt."#rename 's/filt.//' * #删除前缀"filt." cd ..done

未经允许不得转载:山九号 » shellforin文件名|如何用shell获取linux目录下的文件名

赞 (0)