免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2135 | 回复: 5
打印 上一主题 下一主题

[文本处理] shell 求助 awk内嵌sed处理 没达到效果 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-03 09:53 |只看该作者 |倒序浏览
本帖最后由 uplogin 于 2012-09-03 10:58 编辑

367222 order_33495993_20110613_20111111_27.csv
366359 order_33495993_20110613_20111111_27.csv
365496 order_33495993_20110613_20111111_27.csv
364633 order_33495993_20110613_20111111_27.csv
363770 order_33495993_20110613_20111111_27.csv
362907 order_33495993_20110613_20111111_27.csv
362044 order_33495993_20110613_20111111_27.csv
361181 order_33495993_20110613_20111111_27.csv
330473 order_33495993_20110613_20111111_27.csv
329610 order_33495993_20110613_20111111_27.csv
328747 order_33495993_20110613_20111111_27.csv
187656 order_33495993_20100517_20100910_27.csv
186838 order_33495993_20100517_20100910_27.csv
141798 order_33495993_20100517_20100910_27.csv
140980 order_33495993_20100517_20100910_27.csv
140162 order_33495993_20100517_20100910_27.csv
139345 order_33495993_20100517_20100910_27.csv
138528 order_33495993_20100517_20100910_27.csv
以上是bad.list的内容
我想删除对应文件的对应行号的内容
空格隔开 两边分别是要删除的行号和文件名
awk '{ system("sed -i " $1"d " $2)}' bad.list 这是我的命令 但是没能实现功能
版本是这个:
GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation.

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
2 [报告]
发表于 2012-09-03 10:03 |只看该作者
这个命令没问题。
查查ni的系统awk 版本。

论坛徽章:
0
3 [报告]
发表于 2012-09-03 10:56 |只看该作者
回复 2# rdcwayx


    版本是这个

GNU Awk 3.1.5
Copyright (C) 1989, 1991-2005 Free Software Foundation.

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2012-09-03 11:05 |只看该作者
回复 3# uplogin

it work fine on Ubuntu 11.10

$ cat 5.txt
1
2
3
4
5

$ cat bad.list
3 5.txt
1 5.txt

# using echo check everything
$ awk '{system("echo sed -i "$1"d "$2)}' bad.list
sed -i 3d 5.txt
sed -i 1d 5.txt

$ awk '{system("sed -i "$1"d "$2)}' bad.list

$ cat 5.txt
2
4
5

$ awk -W version
GNU Awk 3.1.8
Copyright (C) 1989, 1991-2010 Free Software Foundation.
...

论坛徽章:
0
5 [报告]
发表于 2012-09-03 11:12 |只看该作者
while read a b; do sed -i -- ${a}d "$b"; done <bad.list

论坛徽章:
0
6 [报告]
发表于 2012-09-03 13:47 |只看该作者
回复 4# jason680


    sed -i 367222d order_33495993_20110613_20111111_27.csv
sed -i 366359d order_33495993_20110613_20111111_27.csv
sed -i 365496d order_33495993_20110613_20111111_27.csv
sed -i 364633d order_33495993_20110613_20111111_27.csv
sed -i 363770d order_33495993_20110613_20111111_27.csv
sed -i 362907d order_33495993_20110613_20111111_27.csv
sed -i 362044d order_33495993_20110613_20111111_27.csv
sed -i 361181d order_33495993_20110613_20111111_27.csv
我加了echo 执行结果 是这个 貌似正常啊 为什么去掉echo 源文件 依旧没有改变呢?
awk '{system("echo sed -i "$1"d "$2)}' bad.list
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP