免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 大脚王
打印 上一主题 下一主题

AWK的简单问题,如何去掉第一行和第一列?? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-08-30 09:53 |只看该作者
回复 1# 大脚王


    折腾的通用些,下面这个可以满足你给出的要求
  1. sed -n 's/^.//g;2,$p' ur
  2. |2|2|2|2|2|2|2|2|2|2|2|2|2
  3. |3|3|3|3|3|3|3|3|3|3|3|3|3
复制代码

论坛徽章:
0
12 [报告]
发表于 2010-08-30 09:59 |只看该作者
回复 7# bxfqing


    哥,你试过了吗?

host1-24> awk -F"|" '{if(NR>1){$1="";print $0}}' n39
2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3

论坛徽章:
0
13 [报告]
发表于 2010-08-30 10:11 |只看该作者
lz 要什么结果
iamgod12345678 发表于 2010-08-30 09:35



    去掉第一列:

D:\>awk  '{$1="" ; print $0}'  SMS_1.txt  > SMS_1_new.txt

我不加 ; 是没法跑通的,版本参考请看前面

论坛徽章:
0
14 [报告]
发表于 2010-08-30 10:29 |只看该作者
本帖最后由 ywlscpl 于 2010-08-30 10:32 编辑

第一列可以为任意长度
awk -F '|' '{sub("^"$1,"")}NR>1' file

论坛徽章:
0
15 [报告]
发表于 2010-08-30 10:32 |只看该作者
回复 1# 大脚王


    俺也回个:
  1. sed '1d;s/[^|]*//' file
复制代码

论坛徽章:
0
16 [报告]
发表于 2010-08-30 11:45 |只看该作者
awk 'NR!=1{print substr($0,index($0,"|")+1)}' test5

论坛徽章:
0
17 [报告]
发表于 2010-08-30 11:57 |只看该作者
回复 14# ywlscpl


    强!!!

论坛徽章:
0
18 [报告]
发表于 2010-08-30 12:00 |只看该作者
本帖最后由 jiwang1980 于 2010-08-30 12:05 编辑

回复 14# ywlscpl


    这个赞一下,顺便问下

为什么 $1没有在双引号中?

BTW:根据sub函数,awk -F '|' '{sub($1,"")}NR>1' 这样也是可以的

host1-28> awk -F '|' '{sub($1,"")}NR>1' n39
|2|2|2|2|2|2|2|2|2|2|2|2|2
|3|3|3|3|3|3|3|3|3|3|3|3|3


不适用域分隔符怎么也可以
host1-35> awk '{sub($1,"")}NR>1' n39
|2|2|2|2|2|2|2|2|2|2|2|2|2
|3|3|3|3|3|3|3|3|3|3|3|3|3

host1-36> cat n39
AAAAAAAAAAAAAAAAAAAA
123|2|2|2|2|2|2|2|2|2|2|2|2|2
123|3|3|3|3|3|3|3|3|3|3|3|3|3

论坛徽章:
0
19 [报告]
发表于 2010-08-30 12:07 |只看该作者
回复 18# jiwang1980

嗯,去除第一列的话sub("^"$1,"")和sub($1,"")是等价的
但如果要去除最后一列的话,sub($NF"$","")和sub($NF,"")就不等价了
^和$在这里都是正则,表示首和末
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP