当前位置: 技术问答>linux和unix
文本处理(删除每行重复的部分)
来源: 互联网 发布时间:2016-10-29
本文导语: PRIMARY KEY (`Channelid`,`Channelid`) PRIMARY KEY (`sd`,`bg`) PRIMARY KEY (`abc`,`abc`,`abc`) 找到这样的行 将 他们替换成 PRIMARY KEY (`Channelid`) PRIMARY KEY (`sd`,`bg`) PRIMARY KEY (`abc`) 也就是括号里面重复的只保留一个,...
PRIMARY KEY (`Channelid`,`Channelid`)
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`,`abc`,`abc`)
找到这样的行 将 他们替换成
PRIMARY KEY (`Channelid`)
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`)
也就是括号里面重复的只保留一个,不重复的不能动
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`,`abc`,`abc`)
找到这样的行 将 他们替换成
PRIMARY KEY (`Channelid`)
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`)
也就是括号里面重复的只保留一个,不重复的不能动
|
笨办法
# cat f1
PRIMARY KEY (`Channelid`,`Channelid`)
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`,`abc`,`abc`)
# cat f1
PRIMARY KEY (`Channelid`,`Channelid`)
PRIMARY KEY (`sd`,`bg`)
PRIMARY KEY (`abc`,`abc`,`abc`)
#!/bin/sh
while read line
do
f=0
echo -n "PRIMARY KEY(`"
echo $line|cut -f2 -d(|cut -f1 -d)|tr -d `|awk -F, '{split($0, a); for(i in a) {print a[i]}}'|uniq|
while read k
do
if [ $f -ne 0 ];then
echo -n ",`"
fi
echo -n "$k`"
f=1
done
echo ")"
done