入门级的awk问题

yitaohust 2011-01-22 10:12:34
刚了解awk命令,看到如下的命令的结果,不理解:
文件data的内容:
1 donald 305 20050129
2 chin 102 20040129
3 mark 304 20040229
然后有如下话:
awk 'FS="n" {print $1}' data
使用"n"而不是空格做为分隔符,输出:
1 //这里输出咋不是“1 do”呢?以n为分隔符啊。
2 chi
3 mark 304 20040229
...全文
79 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongrisiyu 2011-01-23
  • 打赏
  • 举报
回复
awk -F "n" '{print $1}' data
freetstar 2011-01-23
  • 打赏
  • 举报
回复
一般是在选项里设置FS

awk -F"n" '{print $1}' data
rucypli 2011-01-23
  • 打赏
  • 举报
回复
F S用来在a w k中设置域分隔符,与命令行中- F选项功能相同。缺省情况下为空格。如果用
逗号来作域分隔符,设置F S = ","

awk FS="n" '{print $1}' data单引号位置错了吧
yitaohust 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lgxwqq111 的回复:]
位置的事情
[/Quote]
不好意思,我刚学这个,能否稍微指明一点区别。谢谢了
freetstar 2011-01-23
  • 打赏
  • 举报
回复
位置的事情
yitaohust 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bluejays 的回复:]
awk -F "n" '{print $1}' data
[/Quote]
我也这样写,是得出正确的结果;
但为啥用FS的方式写,而不是-F,就结果不一样呢,奇怪的是这2个写法有啥区别。
ice_cream 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bluejays 的回复:]

awk 'BEGIN {FS="n"} {print $1}' data
[/Quote]
+1
小小小小周 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rucypli 的回复:]
F S用来在a w k中设置域分隔符,与命令行中- F选项功能相同。缺省情况下为空格。如果用
逗号来作域分隔符,设置F S = ","

awk FS="n" '{print $1}' data单引号位置错了吧
[/Quote]

正解;;
bluejays 2011-01-23
  • 打赏
  • 举报
回复
awk 'BEGIN {FS="n"} {print $1}' data
bluejays 2011-01-23
  • 打赏
  • 举报
回复
awk -F "n" '{print $1}' data

2,161

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 UNIX文化
社区管理员
  • UNIX文化社区
  • 文天大人
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧