当前 WordPress 的缘故,代码里面的一些带的$
的符号都不显示了,所以显示出来的代码可能是错误的
获取指定目录/usr/下所有文件夹的名称并输出:
shell 代码:
#!/bin/bash
#方法一
dir=(ls -l /usr/ |awk '/^d/ {printNF}')
for i in dir
do
echoi
done
#方法二
for dir in (ls /usr/)
do
[ -ddir ] && echo dir
done
#方法三
ls -l /usr/ |awk '/^d/ {printNF}' ## 其实同方法一,直接就可以显示不用for循环
awk、sed、grep更适合的方向
grep
更适合单纯的查找或匹配文本sed
更适合编辑匹配到的文本awk
更适合格式化文本,对文本进行较复杂格式处理
关于awk
内建变量个人见解,简单易懂
解释一下变量:
变量:分为内置变量和自定义变量;输入分隔符FS
和输出分隔符OFS
都属于内置变量。
内置变量就是awk
预定义好的、内置在awk
内部的变量,而自定义变量就是用户定义的变量。
- FS(Field Separator):输入字段分隔符, 默认为空白字符
- OFS(Out of Field Separator):输出字段分隔符, 默认为空白字符
- RS(Record Separator):输入记录分隔符(输入换行符), 指定输入时的换行符
- ORS(Output Record Separate):输出记录分隔符(输出换行符),输出时用指定符号代替换行符
- NF(Number for Field):当前行的字段的个数(即当前行被分割成了几列)
- NR(Number of Record):行号,当前处理的文本行的行号。
- FNR:各文件分别计数的行号
- ARGC:命令行参数的个数
- ARGV:数组,保存的是命令行所给定的各参数
自定义变量的方法
- 方法一:
-v varname=value
,变量名区分字符大小写。 - 方法二:在program中直接定义。
引用自:Linux awk 命令