免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5173 | 回复: 5

[文本处理] awk中length($0)和tolower($0)引用的$0为何不同? [复制链接]

论坛徽章:
2
狮子座
日期:2014-05-30 21:43:03巳蛇
日期:2014-05-30 21:46:14
发表于 2014-05-30 20:17 |显示全部楼层
RT,

  1. curl linux.die.net | awk '{gsub(/[^[:alpha:]]/,"\n"); print tolower($0)} '|sort -u
复制代码

  1. curl linux.die.net | awk '{gsub(/[^[:alpha:]]/,"\n"); print length($0)} '|sort -nu
复制代码

第二行代码的输出最后一行竟然是200多字节!
而第一行代码的输出都是单词,根本就没有200字节的。
length($0)和tolower($0)引用的$0为何不同?

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-05-31 00:17 |显示全部楼层
目测是不可见字符导致的~你运行下面这个命令,然后把结果发来看看?
  1. curl linux.die.net | awk '{gsub(/[^[:alpha:]]/,"\n")}1' | cat -A
复制代码

论坛徽章:
2
狮子座
日期:2014-05-30 21:43:03巳蛇
日期:2014-05-30 21:46:14
发表于 2014-05-31 00:40 |显示全部楼层
回复 2# yestreenstars


    我把内容是sort -n 了一下:
$
a$
abs$
action$
Administrators$
Advanced$
alink$
all$
alt$
analytics$
Arial$
async$
available$
base$
Bash$
Beginners$
bg$
bgcolor$
body$
border$
box$
brand$
Bugzilla$
C$
canonical$
categories$
cb$
CLI$
cof$
Collection$
com$
Command$
content$
coop$
createElement$
Cscript$
cse$
css$
Custom$
cx$
dd$
Devices$
die$
div$
Dive$
diveintopython$
dl$
docs$
DOCTYPE$
document$
documentation$
Documentation$
dt$
DTD$
E$
earth$
element$
en$
EN$
Enterprise$
EVMSUG$
explorer$
family$
favicon$
ffffff$
floatPosition$
FloatPosition$
font$
for$
FORID$
form$
forms$
function$
ga$
gaId$
gaq$
gaTrack$
getElementsByTagName$
google$
Google$
googleTranslateElementInit$
guide$
Guide$
h$
head$
height$
Helvetica$
hidden$
highlight$
HOWTO$
href$
html$
HTML$
htp$
http$
https$
i$
ico$
icon$
id$
ie$
if$
image$
img$
INDEX$
input$
insertBefore$
Into$
Intro$
Introduction$
ISO$
javascript$
js$
Kernel$
l$
label$
lang$
language$
Library$
Line$
link$
linux$
Linux$
lkmpg$
load$
location$
logo$
man$
Man$
Management$
maximum$
menu$
meta$
Mobile$
Module$
moon$
musings$
n$
name$
navigator$
net$
new$
of$
on$
or$
p$
page$
pageLanguage$
pages$
Pages$
parentNode$
partner$
phase$
png$
pq$
Programming$
protocol$
pub$
PUBLIC$
push$
Python$
q$
referrer$
rel$
RIGHT$
rtx$
s$
sa$
sag$
sans$
scale$
script$
Scripting$
search$
Search$
Sections$
self$
serif$
setAccount$
shortcut$
site$
size$
span$
src$
ssl$
style$
stylesheet$
submit$
Summary$
sunlight$
System$
test$
text$
the$
this$
time$
title$
to$
Tools$
top$
TOP$
Toys$
trace$
trackPageview$
Transitional$
translate$
TranslateElement$
true$
type$
u$
UA$
uacct$
unescape$
userLanguage$
Users$
value$
var$
viewport$
vlink$
Volume$
W$
white$
width$
window$
with$
world$
write$
www$
x$

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2014-05-31 00:59 |显示全部楼层
回复 3# tgwz88
没看出有什么异常~{:2_169:}

   

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
发表于 2014-05-31 03:42 |显示全部楼层
回复 1# tgwz88


    你第二个代码得到的不是每个单词的长度,是执行完替换后的文本,print $0, length看看就明白了

论坛徽章:
2
狮子座
日期:2014-05-30 21:43:03巳蛇
日期:2014-05-30 21:46:14
发表于 2014-05-31 10:26 |显示全部楼层
经过认真细致的研究发现,我的操作没有更改RS,仅仅是将一些内容替换为RS的值。
所以RS为换行符时,$0也可以是多行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP