1. 截取test 文件指定字段
test文件内容: ert fff ** [abcfd] 123 324 444 [rty] ** fgfgf
截取下面段: [abcfd] 123 324 444 [rty]
2. sed中,使用\u表示大写,\l表示小写
把每个单词的第一个小写字母变成大写
把所有小写变成大写
大写变小写
3. sed在文件中某一行最后添加一个数字
4. sed 删除某个关键字的下一行到最后一行
5. 是使用 sed 打印1到 10 行内包含 某字符串的行
6. 在awk 中使用外部shell 变量
7. awk 合并两个文件
8. 把一个文件多行连接成一行
9. awk 中 gsub 函数的使用
gsub 函数是将正则表达式被匹配到的发生替换.
gsub(Regualr expression, subsitution string, target string);
10. awk 截取指定多个域为一行
for ((i=1,n=`awk -F: 'NR==1 {print NF}' ./passwd`;i<=n;i++)); do awk -F: -v i=$i '{printf($i ":");} END{ print "\n"}' ./passwd ;done
# 最外层使用 for () do ;done 循环包裹
# for循环结构是 (i=1,n=`awk -F: 'NR==1 {print NF}' ./passwd`;i<=n;i++)
# 获取了 文件的列数, 然后根据列数, 设置 i 的值,
# 循环内是获取 该文件的第 i 列, 然后将该列 输出为1行
11. grep 或 egre 或 awk 过滤 两个或多个关键词
grep 'abc|def' file grep -E 'abc|def' file egrep 'abc|def' file awk '/ab|de/' file
12. 使用 awk 编写生成以下结构文件程序
用 awk 生成下面结构文件(最后列是使用现在时间 格式为YYYMMDDHHMMSS) 各列值如下, 每增加以行增加1 , 共500w 行 1,1,0000000001,0000000001,0000000001,0000000001,0000000001,0000000001,2005100110101 2,2,0000000002,0000000002,0000000002,0000000002,0000000002,0000000002,2005100110101
使用 for 循环加 printf 格式化输出, 然后用 awk 內建函数 strftime生成时间
可以使用 system 函数调用系统命令
13. awk 用print 打印单引号
14. 把两个文件中相同的行合并成一行
paste 命令 用于将多个文件按照队列进行合并. 选项:
-d : 用于指定间隔字符取代合并时用的跳格字符
-s 串列进行合并, 而非水平合并
END