cat file.txt | awk -F, '{print $1 "," $3 }'这里我们使用,作为字段分割符,同时打印第一个和第三个字段 。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA 2) 概念: 管道,重定向和backtick 这些不是系统命令,但是他们真的很重要 。
管道 (|) 将一个命令的输出作为另外一个命令的输入 。grep "hello" file.txt | wc -l 在file.txt中搜索包含有”hello”的行并计算其行数 。
在这里grep命令的输出作为wc命令的输入 。当然您可以使用多个命令 。
重定向:将命令的结果输出到文件,而不是标准输出(屏幕) 。> 写入文件并覆盖旧文件 >> 加到文件的尾部,保留旧文件内容 。
反短斜线 使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数 。命令: find . -mtime -1 -type f -print 用来查找过去24小时(-mtime –2则表示过去48小时)内修改过的文件 。
如果您想将所有查找到的文件打一个包,则可以使用以下脚本: #!/bin/sh # The ticks are backticks (`) not normal quotes ('): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print` 3)流程控制 1.if "if" 表达式 如果条件为真则执行then后面的部分: if。.; then。
【linuxsh怎么写】. elif。.; then。
. else。. fi 大多数情况下,可以使用测试命令来对条件进行测试 。
比如可以比较字符串、判断文件 。
2.linux怎么编写shell一般以#!/bin/sh开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了 。
Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序 。以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构) 。
当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用sh ./file.sh方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他) 。
3.linux里sh命令是做什么的sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的 。
当然,linux中sh是链接到bash上的,所以sh与bash在功能上是没有区别的 。还有就是在执行脚本的时候是用sh + 脚本名的方式来执行,其实,大部分的时候,简单脚本只要权限设置正确,可以直接执行,不需要sh命令的如果还不懂可以看看Linux基础书籍 。
《Linux就该这么学》,上面关于linux的知识非常全面,希望能帮到你 。
4.Linux bash/sh/shell编程中的if语句应该怎么写line="#abcmatch BCD"
REGEXP="^[#]"
# 变量赋值不需要前缀$
if [[ $line =~ $REGEXP ]] && [[ $line != '' ]]; then
#粗心 [[ ]] 要配对使用 你写成了 [[ ] [ ]]
true #shell 不能使用空的if 结构,至少要有一个命令 。可以使用true命令。
echo yes
else
echo NO
fi
### end
另外Bash 不支持完全的正则表达式 。[[ “$line” =~ “$REGEXP” ]] 不能达到你想要的效果 。
需要使用echo "$string"| grep -qP /regexp/
Zsh 支持完整的正则表达式,[[ “$line” =~ “$REGEXP” ]] 能达到你想要的效果 。
5.Linux如何编写shell脚本一般以
#!/bin/sh
开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了 。Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序 。