Chinaunix
标题:
请教完成以下工作通过awk如何实现?
[打印本页]
作者:
ttyp0
时间:
2006-11-30 11:17
标题:
请教完成以下工作通过awk如何实现?
源文件
# cat data.txt
20061123|A**|GD
AAA|00001|x0000a0000|
| |x0000a0002|
| |x0001a0001|
AAB|00003|x0000b0000|
| |x0000b0002|
| |x0001b0001|
AAC|01002|x0000c0000|
| |x0000c0002|
| |x0001c0001|
生成的文件:
AAA|00001|x0000a0000|20061123|A**|GD
|00001|x0000a0002|20061123|A**|GD
|00001|x0001a0001|20061123|A**|GD
AAB|00003|x0000b0000|20061123|A**|GD
|00003|x0000b0002|20061123|A**|GD
|00003|x0001b0001|20061123|A**|GD
AAC|01002|x0000c0000|20061123|A**|GD
|01002|x0000c0002|20061123|A**|GD
|01002|x0001c0001|20061123|A**|GD
作者:
Edengundam
时间:
2006-11-30 12:04
凑合用...
#!/bin/sh
awk '
BEGIN {
FS = "|";
OFS = "|";
}
NR == 1 {
head = $0;
}
NR > 1 && $2 !~ /^[ ]+$/ {
id = $2;
len = length($1);
print $0 head;
next;
}
NR > 1 && $2 ~ /^[ ]+$/ {
$2 = id;
$1 = substr($1, 1, len);
print $0 head;
next;
}
' data.txt
复制代码
作者:
awk就是awp加ak
时间:
2006-11-30 13:06
awk -F'|' '
BEGIN { OFS=FS; }
{
if (NR == 1) subfix = $0;
else {
if ($2~/[0-9]/) col = $2; else $2 = col;
print $0 subfix;
}
}' urfile
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2