linux bash shell中如何读取文件

linux bash shell中如何读取文件,第1张

你可以按行读入这个文件的内容到变量里,再进行处理,加个计数器就可以只对你想要的行进行处理了:

while read v1 v2 date1 date2 do

# echo $v1 $v2

echo $date1 $date2 >> BBB

……

done < AAA

如果仅要第一行的数据,可以用head读文件头,再用awk处理,结果存到文件BBB:

head -1 AAA | awk '{print $3,$4}' > BBB

自己判断终究比较麻烦,还有润年什么的,2月还不一定是28天。建议从date命令获取某月的天数:

代码修改如下:

#!/bin/bash

#$1是4位数年份,$2是两位数月份

#这里用了printf,你可以把它的结果传递给mkdir建立目录

i=0

while  [[ `date -d "+$i days $1-$2-01" +%m` -eq $2 ]]

do

    let i++

    printf "$1年$2月%02g日\n" $i

done

date那句是返回给定的某年、某月的第一天   加上   i  天的日期中  月份的数值。如果还是原来的月份就打印,如果不是输入的月份(说明是下一个月了)就退出。

需求功能:

创建测试用例文件 text :

创建shell脚本

运行结果:

利用 awk 'END{print NR}' [文件名] 来输出行数:

在shell脚本中添加该功能:

运行结果:

上面的shell文件只是把文件名写死在脚本中,并没有实际使用意义,所以需要编写一个指令来指定需要读取的文件,就像 vim [文件名] 一样

“$1” 代表第1个参数,也就是在 read 之后紧跟的参数,将其作为文件名传入:

将脚本移动至环境变量对应的目录中:(可以自己更改 /bin/xxx 来决定运行命令的名称,但注意不能重复)

sudo mv read /bin/read

然后添加运行权限:

sudo chmod 755 /bin/read

打开终端的目录可以是任何位置,通过以下命令即可运行shell脚本:

sudo read [文件路径]

同理,我们还可以自己为复杂指令编写shell脚本,来提高命令的使用效率,例如开关ss服务,打开锐捷客户端认证等等。

#/bin/sh

function tmp_fun()

{

echo "press Enter to continue or other key to exit"

read -n 1 _tmp_key

echo "$tmp_key"

if [ "$_tmp_key" != "^@" ]; then  #这里的^@是以ctrl+v,ctrl+Enter打印的,中间ctrl不放

        exit 0  

else

        cd a    #这里是a文件夹,具体路径自己写

        vi `find  -name "texttxt"  -printf "%AD %AT %f\n"|sort|tail -1|cut -d " "  -f3`  #这里用时vi打开的。

fi

}

#statement 这里是你前一段命令,可以在这里自己加判断执行后面的

tmp_fun

#说明:没加错误处理。

find / -ctime 0 -exec grep -H "a=000000" {} \; | cut -d: -f1 | uniq -c

atime: 在文件被读、写、truncate、mknod、utime时更改atime

mtime: 在文件被mknod、utime更改和写入时 更改mtime

ctime:文件i-node最近一次修改的时间

以上就是关于linux bash shell中如何读取文件全部的内容,包括:linux bash shell中如何读取文件、shell问题,如何按照想法创建多个以日期为名的文件夹、在Ubuntu下编写shell脚本读取文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9709737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存