sed 和 awk 的一些用法

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

转载于:https://my.oschina.net/nikoF/blog/2875709

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值