最近写了一些文章存放在一个文件夹下,今天想看看自己到底写了多少内容。于是想写一个脚本来进行统计。最终代码如下: #!.../bin/bash files=$(ls) all=0 for i in $files; do if [ $i !...| cut -d ' ' -f5) all=$(($all+$t)) echo ' 统计字数: '$t fi done echo '共计字数'$all 原理非常简单,循环所有文件...,读取第一行显示,(因为我的第一行是标题),然后利用 wc 统计文件字数,在循环的时候进行累加。...然后就展示出该文件有多少字符,而最终一共有多少字符了。 小脚本解决大问题,每天都积累一点点。 本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。
sed编辑器被称作流编辑器(stream editor),跟普通交互式文件编辑器相反。在交互式编辑器中(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。...流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 于是我们可以利用sed编辑器在安装脚本实现对profile文件的修改。...下面我们以一个实际应用的例子来说明: 我已经有一个叫CASSDK的项目,这个项目没有可执行文件,只是一组动态库文件提供别的应用程序调用(比如java),需要为它写一个安装脚本,脚本的作用是将在将文件复制到指定安装目录...另外还要写一个卸载脚本,在删除安装目录后,同时将profile中的LD_LIBRARY_PATH变量也同步修改。...下面是原始的profile脚本片段 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/
linux 基本命令 目录操作 mkdir 创建文件夹 mkdir -p 递归创建目录 创建多个目录 mkdir [-p] a b c touch a b c 创建文件 rm -r 递归 -f 强制删除...cp -r 递归 复制 cp -r a/ b/ mv 移动(重命名) ls (ll=ls -l) 压缩 gzip a.txt a.txt.gz gunzip a.txt.gz tar -c 创建 -x...解包 -v 可视化解压过程 -f 文件名 -z 压缩为gz -J xz格式 输出重定向 > 标准输出重定向 覆盖输出 >> 追加输出重定向 查看文件 cat -n 显示行号 tac head 查看文件前.../bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后是此解释此脚本的shell的路径。...变量 var1="xxx" 0 表示获取当前执行的shell脚本文件名, n 表示获取当前执行的shell脚本的第n个参数值 $# 获取当前shell命令行中参数的总个数, $?
如果不加rm -rf /upuptop 则是死循环 linux中的分割 bash最终的扩展是切割扩展,其通过一个环境变量 IFS 里面定义的分隔符进行分割。默认为空格,制表符,换行符。...IFS 的定义是放的三个标识符的ASCII码,例如:我们可以通过$"\n"获去换行符的码值 在脚本中,如果你修改了用完之后一定要记得改回去 可以使用 awk 命令切割字符串 练习 获取指定参数文件夹中包含其子目录中最大文件...1.用户自定义路径2.输出文件带下最大的文件3.递归子目录 [root@CentOS6 shell]# vim maxFile.sh#!...]# cat a.txt a 1b 2c 3 shell脚本: [root@CentOS6 shell]# vim readFile.sh #!.../bin/bash # 第一种方式:使用for..in,加cat命令# 备份IFSoldIFS=$IFSIFS=$'\n' num=0 for i in `cat a.txt`; do echo
shell脚本中的逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(=);...-q '123' 1.txt; then 表示如果1.txt中含有'123'的行时会怎么样 if [ !...-e file ]; then 表示文件不存在时会怎么样 if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… [ ] 中不能使用,==,!.../lalala文件为空,或者被删除的话,脚本就会运行出错,出现bug 应该加上一个判断条件 #!...: 在网卡系统服务脚本中,如,/etc/init.d/iptables中就用到了case 在case中,可以在条件中使用“|”,表示或的意思 输入一个同学的分数,判断成绩是否及格,优秀。
为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面: [root@localhost ~]# cat mycontent.txt This is a sample file.../bin/bash cat mycontent.txt | while read rows do echo "Line contents are : $rows " done 运行结果: 如何工作的...- |管道符将cat输出的内容保存在"$rows"变量中。...- 使用echo显示输出内容,输出内容包括自定义的字符串和变量,$rows变量为文本文件中的每行内容 Tips:可以将上面的脚本缩减为一行命令,如下: [root@localhost ~]# cat mycontent.txt.../bin/bash cat mycontent.txt |awk '{print "Line contents are: "$0}' 运行结果: 总结 本文介绍了如何使用shell脚本逐行读取文件内容
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文件夹下面...日积月累,我们的文件会越来越多。手工整理这些文件是比较繁琐的工作,于是,我就思考,我能不能用 shell 来自动整理这些下载的文件。 说干就干。...为了避免破坏我本地的文件,我自己搞了一个虚拟机跑了一个 centos 然后写下了如下的脚本。 第一版代码(处理文件名带空格的文件会出错) #!...'Xmind' ;; 'pdf') echo 'PDF' ;; *) echo 'Other' ;; esac } # 判断目标文件夹中是否包含这个文件...'Xmind' ;; 'pdf') echo 'PDF' ;; *) echo 'Other' ;; esac } # 判断目标文件夹中是否包含这个文件
line中。...在这里,-r选项保证读入的内容是原始的内容,意味着反斜杠转义的行为不会发生。输入重定向操作符< file打开并读取文件file,然后将它作为read命令的标准输入。...今天遇到一个问题弄了好久才搞明白:我想在循环中动态链接字符串,代码如下: for line in `cat filename` do echo ${line}XXYY done 就是在每一次循环过程中给取出来的字符串后面添加...后来发现是因为我的文件是才Window下生产的,在Linux下读取这样的文件由于换行符的不同会导致程序运行不出来正确的结果。...解决办法:在Linux安装dos2unix小工具,经过该工具转化以后的文件再进行读取就没有问题了。
今天在将windows下的脚本文件通过scp命令,发送到远程服务器上,在执行过程中遇得到了这个问题 ./sh.sh -bash: ..../sh.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录 原因分析:windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么在windows下编辑过的文件在linux...下打开看的时候每一行的结尾就会多出来一个字符\r,用cat -A urfile时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了,可以使用命令 sed -i 's/\r//' filename...cat -A sh.sh #!.../bin/bash^M$ # ^M$ ^M$ echo "Hello World"^M$ sed -i 's/\r//' sh.sh ./sh.sh Hello World 你好
3、第二个Shell脚本:多命令处理 (1)需求:在/home/jack/目录下创建一个banzhang.txt,在banzhang.txt文件中增加“I love cls”。.../bin/bash cd /home/jack touch banzhang.txt echo "I love lxy" >> banzhang.txt 4 Shell中的变量 4.1 系统变量 1、...fi 11.3 新浪 问题1:用shell写一个脚本,对文本中无序的一列数字排序。...=$0;print $0} END {print "SUM=" a}' 1 2 3 4 5 6 7 8 9 10 SUM=55 11.4金和网络 问题1:请用shell脚本写出查找当前文件夹(/home.../jack/datas/cut.txt 注意: grep -R/-r /home/ 以递归方式读取/home/目录下的所有文件 11.5 数据库备份shell脚本的编写示例 ?
/usr/bin/bash /usr/sbin/nologin 脚本 可执行命令在一个文件中的组合 [root@sswang ~]# mkdir /data/scripts.../sbin/nologin 1.2 shell脚本[记忆] 1.2.1 创建脚本 创建方式 任意一种编辑文件的工具都可以 vim 脚本命名 有意义...内置变量 内置变量 bash内部直接定义好的特殊参数,我们可以直接拿过来用 脚本文件 $0 获取脚本文件名 $# 获取脚本执行时候的参数总个数 $n 获取脚本执行时候的指定位置参数的内容.../bin/bash # 获取脚本文件名称 echo "当前脚本文件名称是: get_name.sh" echo "当前脚本文件名称是: $0" #!.../bin/bash # 获取脚本参数的总个数 echo "当前脚本执行时候,传入的参数总个数是: $#" [root@shell scripts]# echo $?
==宿主目录==中,保存为pwd.txt文件 55 23 * * 0 ==/usr/bin/cp== /etc/passwd ~/pwd.txt==(注:命令的绝对路径)==/etc/crontab...是cron的一个配置文件# vim /etc/crontab SHELL=/bin/bash (注:计划任务执行命令时用/bin/bash执行)==PATH===/sbin:/bin:/usr/sbin...请==为普通用户hello编写计划任务==:要求每5分钟,将系统中属于hello用户的文件的个数自动保存到/opt/fnum.txt文件中。内容格式为:“日期时间 姓名 拥有的文件个数是:数目”。...==$ ==ls >1.txt 2>2.txt==$ ==>1.txt 清空1.txt文件里的内容==$ cat 1.txt $ $ ls &>1.txt ==不管正确的还是错误的都往一个文件里重定向...请为普通用户xull编写计划任务:要求每5分钟,将==系统中属于xull用户的文件的个数==自动保存到/opt2/fnum.txt文件中。内容格式为:“日期时间 姓名 拥有的文件个数是:数目”。
` do dd=$[$m*$n] echo -ne "$n x $m = $dd \t" done echo done 写脚本,用来实现交换两个文件或目录的名字。...;第二个参数为目录,即下载后保存的位置; 如果用户给的目录不存在,则提示用户是否创建;如果创建就继续执行,否则,函数返回一个51的错误值给调用脚本; 如果给的目录存在,则下载文件;下载命令执行结束后测试文件下载成功与否...fi done fi 用shell写一段代码,把/msxf目录下所有以ms开头的文件夹取出,保存到dirlist.txt文件中,然后遍历文件中的文件夹路径,在每个文件夹目录中创建一个test.txt文件..."ms*" > /tmp/dirlist.txt for i in `cat /tmp/dirlist.txt` do cd $i touch test.txt done 用shell编程,判断一个文件是否为字符设备文件...写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本。 #!
分享下看到比较好的关于常用的shell脚本,供大家学习: 1、脚本之间互相调用与传递参数 "1.sh"的脚本,接受参数。...Shell脚本没有{}括号,所以用fi表示if语句块的结束。 "2.sh"的脚本,传递参数 Shell代码 1. 2. #!.../bin/bash 3. cat 文件 |grep -a "关键词" >> result.log 备注:把文件中包含关键词的行输出到result.log中。 ...18、遍历文件夹并按第二个域对文件内容排序。 Shell代码 1. 2. #!/bin/bash 3....29. fi 19、查看文件夹下所有文件数目和所有文件夹数目 Shell代码 1. #!/bin/bash 2. #查看当前文件夹下所有文件数目 3. find .
在Java开发中,经常需要对文件进行读写、查找和操作,因此,掌握文件操作技能非常重要。...以下是具体代码实现: 1、通过递归方式查找文件: public static List searchFiles(String folderPath, String suffix) {...,我们可以遍历指定文件夹下所有的子文件夹和文件,并且只选取符合指定后缀名的文件进行存储和统计。...,调用countLines方法计算每个文件的行数,并将所有文件的行数累加起来返回结果。....java的文件行数,同时具有很好的可扩展性,可以根据需要修改搜索和过滤条件。
简单来说,叹号可以单独成一个文件夹,也可以作为文件夹的末位字符,说白了,叹号后面不能加东西,叹号加字符代表着特殊含义 !! --> 执行上一条命令 !$ --> 上一个命令的最后一个参数 !...cat就能看到其他队伍的cat内容,如果有其他人是通过cat输出flag那么我们也可以得到flag ` . .表示当前的shell(如/bash/shell) ; 用;号隔开每个命令, 每个命令按照从左到右的顺序.../flzg cat /f{l,a,b}ag 输出/flag /faag /fbag 关键字绕过 `命令提示符:使用*、@、x(x代表1-9,0表示Shell本身的文件名故不可用)、{x}(...x>=10) 在没有传参的情况下,这些值都是空 但如果执行cd 0 … cd 9就是转到~目录 ca*t 1.txt //* 是传给脚本的所有参数的列表 ca@t 1.txt //...@ 是传给脚本的所有参数的列表 ca9t 1.txt //9 是传递给该shell脚本的第九个参数 ca{11}t 1.txt //{x} 两位数以上用${}括起来 反斜杠 ca\t /flag
以后如果不指定,默认shell为命令行式shell,在工作中,最常用的便是Linux系统下的bash。...大家一定听过shell脚本,那么什么是shell脚本呢?其实就是一个特殊的文件,这个文件中包含了shell命令,我们执行shell脚本即可执行文件中所有的shell命令。...2.3.3.1和脚本文件相关的变量 符号 意义 $0 获取当前执行的shell脚本文件名 $$ 获取执行shell脚本的进程号 $n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0时表示脚本的文件名...-v:显示不包含匹配文本的所有行。 如果配合管道符使用,后面的文件名是不用写的。 小技巧:精确定位错误代码。 -r代表的是递归的执行命令。...$ cat error bash: ethan: 未找到命令 文件保存了出错的信息。
用户可以直接输入命令,也可以从称为名为shell脚本或shell程序的文件中读取。 Shell types UNIX系统通常提供多种shell类型。...目录类似于文件夹,但在Shell中,称为目录。UNIX文件层次结构呈树状。要访问特定的文件夹或文件,需要穿过树结构中的某些特定路径。路径需借助斜杠(/)字符分隔上述结构的每个节点。...Touch命令 Touch命令用于创建新空白文件,还用于更改现有文件和目录的时间戳。以下是如何在Demo文件夹中创建名为foo.txt的文件的图示。...查看多个文件,需在cat命令后键入文件名: $ cat Names.txt fruits.txt Less命令 Cat命令在屏幕上显示文件内容。...排序过滤器按首字母顺序或数字顺序对行进行排序 cat命令首先读取文件fruits.txt的内容,然后对其进行排序。 uniq代表unique,它提供输入流中特殊行的数量。
文章目录 1. shell 概述 1.1 shell 和 shell 脚本 1.2 Shell 脚本应用场景 1.3 Linux 中的 shell 类型 1.4 脚本实例 2. shell 脚本编程基础.../test.sh 的输出重定向到 log.txt 文件中,同时将标准错误也重定向到 log.txt 文件中 ....shell 中内置的变量,在脚本代码中调用通过命令行传递给脚本的参数。.../bin/bash #测试文件中的 IP 是否连通 IPLIST=$(cat /opt/ipaddrs.txt) for IP in $IPLIST do ping -c 3 -i 0.2 -W 3 $...因此,本地变量的作用范围是当前 shell 脚本程序文件,包括脚本中的函数 环境变量:当前 shell 和子 shell 有效 本地变量:函数的生命周期结束时变量被自动销毁 注意: 如果函数中定义了普通变量
问题1:使用Linux命令查询file1中空行所在的行号 awk '/^$/{print NR}' sed.txt 5 问题2:有文件chengji.txt内容如下: 张三 40 李四 50 王五...60 使用Linux命令计算第二列的和并输出 cat chengji.txt | awk -F " " '{sum+=$2} END{print sum}' 150 问题1:Shell脚本里如何检查一个文件是否存在.../bin/bash if [ -f file.txt ]; then echo "文件存在!" else echo "文件不存在!"...fi 问题1:用shell写一个脚本,对文本中无序的一列数字排序 cat test.txt 9 8 7 6 5 4 3 2 10 1 sort -n test.txt | awk '{a+=$0;print...$0}END{print "SUM="a}' 1 2 3 4 5 6 7 8 9 10 SUM=55 问题1:请用shell脚本写出查找当前文件夹(/home)下所有的文本文件内容中包含有字符”shen
领取专属 10元无门槛券
手把手带您无忧上云