分页: 1 / 1
awk 和异常字符的问题
发表于 : 2010-08-13 9:41
由 netzsm
文本如下
代码: 全选
400590| |B|鸿琛鮸鱼肚 |Hongchenmian Yudu |鸿琛鮸鱼肚 |1 kg|kg |公斤(KG) |ZUMA|5|10|2008|Y| | |04|2010|S|06/05/2009|
在使用代码
代码: 全选
awk -F"|" '{print $1,$2,$4,$5,$6}' text
时,其中的 “鮸”字的一半会被当作分隔符 "|" ,造成分割出的字段大于实际情况,
并且剩下的半个汉字会和紧接的字符连在一起造成意想不到的结果
有没有高人帮忙解决此问题?
Re: awk 和异常字符的问题
发表于 : 2010-08-13 10:25
由 kingkongmok
kk@dn83:~$ cat test/txt
400590| |B|鸿琛鮸鱼肚 |Hongchenmian Yudu |鸿琛鮸鱼肚 |1 kg|kg |公斤(KG) |ZUMA|5|10|2008|Y| | |04|2010|S|06/05/2009|
kk@dn83:~$ awk -F"|" '{print $1,$2,$4,$5,$6}' test/txt
400590 鸿琛鮸鱼肚 Hongchenmian Yudu 鸿琛鮸鱼肚
kk@dn83:~$ locale
LANG=en_US.utf8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
kk@dn83:~$
Re: awk 和异常字符的问题
发表于 : 2010-08-13 10:31
由 link_01
awk -F"|" '{for (i=1; i<NF; i++) print i,$i}' tt
代码: 全选
1 400590
2
3 B
4 鸿琛鮸鱼肚
5 Hongchenmian Yudu
6 鸿琛鮸鱼肚
7 1 kg
8 kg
9 公斤(KG)
10 ZUMA
11 5
12 10
13 2008
14 Y
15
16
17 04
18 2010
19 S
20 06/05/2009
好像我不存在這個問題?
Re: awk 和异常字符的问题
发表于 : 2010-08-13 10:35
由 trigger
代码: 全选
$ echo "400590| |B|鸿琛鮸鱼肚 |Hongchenmian Yudu |鸿琛鮸鱼肚 |1 kg|kg |公斤(KG) |ZUMA|5|10|2008|Y| | |04|2010|S|06/05/2009| " | cut -f 1,2,4,5,6 -d"|"
400590| |鸿琛鮸鱼肚 |Hongchenmian Yudu |鸿琛鮸鱼肚
Re: awk 和异常字符的问题
发表于 : 2010-08-13 10:35
由 netzsm
我用的是,HP-UX,也许是你粘贴过去编码问题没有了,我转编码看看,谢谢
Re: awk 和异常字符的问题
发表于 : 2010-08-13 10:38
由 trigger
代码: 全选
$ echo "400590| |B|鸿琛鮸鱼肚 |Hongchenmian Yudu |鸿琛鮸鱼肚 |1 kg|kg |公斤(KG) |ZUMA|5|10|2008|Y| | |04|2010|S|06/05/2009| " | awk -F"|" '{print $1,$2,$4,$5,$6}'
400590 鸿琛鮸鱼肚 Hongchenmian Yudu 鸿琛鮸鱼肚