- 论坛徽章:
- 0
|
大牛们,我有个awk分割的问题
系统版本如下
$ uname -a
SunOS shreuter1 5.8 Generic_117350-62 sun4u sparc SUNW,Sun-Blade-100
我有一组数据,形如
aaa||bbb||ccc||ddd
使用两个管道号分割,于是我用如下语句想取出aaa,bbb,ccc,ddd
$N 其中的N应该等于1~4即可
echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $N}'
但是实际的情况如下,1,3,5,7才是我取出的数据,2,4,6为空
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $1}'
- aaa
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $2}'
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $3}'
- bbb
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $4}'
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $5}'
- ccc
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $6}'
- $ echo "aaa||bbb||ccc||ddd" |awk 'BEGIN {FS="||"} {print $7}'
- ddd
复制代码
如果把双导管号改成单个导管,没有上述问题
- $ echo "aaa|bbb|ccc|ddd" |awk 'BEGIN {FS="|"} {print $1}'
- aaa
- $ echo "aaa|bbb|ccc|ddd" |awk 'BEGIN {FS="|"} {print $2}'
- bbb
- $ echo "aaa|bbb|ccc|ddd" |awk 'BEGIN {FS="|"} {print $3}'
- ccc
- $ echo "aaa|bbb|ccc|ddd" |awk 'BEGIN {FS="|"} {print $4}'
- ddd
复制代码
不知道为何 双导管分割有问题
如何使其正常显示,因为这样的格式我在实际使用中经常遇到,经常需要分割
谢谢大牛们了 |
|