亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5655 | 回復(fù): 15
打印 上一主題 下一主題

[文本處理] 刪除文本中某一列---太折騰人了 [復(fù)制鏈接]

論壇徽章:
3
亥豬
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉雞
日期:2014-02-12 10:46:13
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-12-23 16:22 |只看該作者 |倒序?yàn)g覽
文本文件a.dat:
insert into t values(1,'abc',78,'greger2343','grtg');
insert into t values(2,'dgre',44,'jty','grtg');
insert into t values(3,'grhg',65,'66k','ghre');
insert into t values(4,'muy',68,'yj','g5');
insert into t values(5,'54yn',98,'67','54h');
.......
表件中放的是表T的所有記錄,是SQL的格式存放的。表T有5個(gè)屬性,N條記錄。即,文本中“(” 與 “)”之間以“,”隔開的有5個(gè)域,文件中共N行數(shù)據(jù)。
要求刪除第M列。
例:
如果M為5,刪除后的結(jié)果應(yīng)該為:
insert into t values(1,'abc',78,'greger2343');
insert into t values(2,'dgre',44,'jty');
insert into t values(3,'grhg',65,'66k');
insert into t values(4,'muy',68,'yj');
insert into t values(5,'54yn',98,'67');
如果M為3,刪除后的結(jié)果應(yīng)該為:
insert into t values(1,'abc',greger2343','grtg');
insert into t values(2,'dgre','jty','grtg');
insert into t values(3,'grhg','66k','ghre');
insert into t values(4,'muy','yj','g5');
insert into t values(5,'54yn','67','54h');
大蝦們幫忙看看,有沒有什么好的方案?

論壇徽章:
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程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-06-16 22:20:002015亞冠之塔什干火車頭
日期:2015-06-20 23:28:22
2 [報(bào)告]
發(fā)表于 2013-12-23 16:53 |只看該作者
本帖最后由 yestreenstars 于 2013-12-23 16:54 編輯
  1. [root@localhost ~]# awk -vM=3 'BEGIN{FS=",";RS="[()]"}NF==5{for(i=0;i++<NF;)if(i!=M)s=s?s","$i:$i;$0=s;s=""}{printf $0 RT}' i
  2. insert into t values(1,'abc','greger2343','grtg');
  3. insert into t values(2,'dgre','jty','grtg');
  4. insert into t values(3,'grhg','66k','ghre');
  5. insert into t values(4,'muy','yj','g5');
  6. insert into t values(5,'54yn','67','54h');
  7. [root@localhost ~]# awk -vM=5 'BEGIN{FS=",";RS="[()]"}NF==5{for(i=0;i++<NF;)if(i!=M)s=s?s","$i:$i;$0=s;s=""}{printf $0 RT}' i
  8. insert into t values(1,'abc',78,'greger2343');
  9. insert into t values(2,'dgre',44,'jty');
  10. insert into t values(3,'grhg',65,'66k');
  11. insert into t values(4,'muy',68,'yj');
  12. insert into t values(5,'54yn',98,'67');
  13. [root@localhost ~]#
復(fù)制代碼

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
3 [報(bào)告]
發(fā)表于 2013-12-23 16:53 |只看該作者
  1. [root@everIover ~]# cat ii
  2. insert into t values(1,'abc',78,'greger2343','grtg');
  3. insert into t values(2,'dgre',44,'jty','grtg');
  4. insert into t values(3,'grhg',65,'66k','ghre');
  5. insert into t values(4,'muy',68,'yj','g5');
  6. insert into t values(5,'54yn',98,'67','54h');
  7. [root@everIover ~]# awk -vFS="[(),]" '{printf("%s(%s,%s,%s,%s",$1,$2,$3,$5,$6) ;print ")"}' ii
  8. insert into t values(1,'abc','greger2343','grtg')
  9. insert into t values(2,'dgre','jty','grtg')
  10. insert into t values(3,'grhg','66k','ghre')
  11. insert into t values(4,'muy','yj','g5')
  12. insert into t values(5,'54yn','67','54h')
  13. [root@everIover ~]#
復(fù)制代碼

論壇徽章:
3
亥豬
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉雞
日期:2014-02-12 10:46:13
4 [報(bào)告]
發(fā)表于 2013-12-23 17:08 |只看該作者
回復(fù) 3# 這個(gè)冬天不冷

TKS!
需要?jiǎng)h除的第M列是一個(gè)入?yún)。大蝦好像把它給寫死了,而且最后的;給弄沒了

論壇徽章:
145
技術(shù)圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
5 [報(bào)告]
發(fā)表于 2013-12-23 17:11 |只看該作者
回復(fù) 1# joepayne

$ awk -F'[(,)]' -vM=5 '{s="";printf $1"(";for(n=2;n<NF;n++){if(n!=M+1){printf s$n;s=","}}print ");"}' a.dat
insert into t values(1,'abc',78,'greger2343');
insert into t values(2,'dgre',44,'jty');
insert into t values(3,'grhg',65,'66k');
insert into t values(4,'muy',68,'yj');
insert into t values(5,'54yn',98,'67');
jason@jason-VirtualBox:~/tmp
$ awk -F'[(,)]' -vM=3 '{s="";printf $1"(";for(n=2;n<NF;n++){if(n!=M+1){printf s$n;s=","}}print ");"}' a.dat
insert into t values(1,'abc','greger2343','grtg');
insert into t values(2,'dgre','jty','grtg');
insert into t values(3,'grhg','66k','ghre');
insert into t values(4,'muy','yj','g5');
insert into t values(5,'54yn','67','54h');
   

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
6 [報(bào)告]
發(fā)表于 2013-12-23 17:18 |只看該作者
本帖最后由 這個(gè)冬天不冷 于 2013-12-23 17:26 編輯

回復(fù) 4# joepayne

確實(shí)寫死了。最后一個(gè);直接在awk -vFS="[(),]" '{printf("%s(%s,%s,%s,%s",$1,$2,$3,$5,$6) ;print ");"}' 最后加一個(gè);就ok了
[root@everIover ~]# awk -vFS="[(),]" -vM=3 '{printf("%s(",$1);for(i=2;i<=6;i++){if(i==M)continue;printf("%s%s",f,$i);f=","}print ");";f=""}' ii
  1. [root@everIover ~]# awk -vFS="[(),]" -vM=3 '{printf("%s(",$1);for(i=2;i<=6;i++){if(i==M)continue;printf("%s%s",f,$i);f=","}print ");";f=""}' ii
  2. insert into t values(1,78,'greger2343','grtg');
  3. insert into t values(2,44,'jty','grtg');
  4. insert into t values(3,65,'66k','ghre');
  5. insert into t values(4,68,'yj','g5');
  6. insert into t values(5,98,'67','54h');
  7. [root@everIover ~]# cat ii
  8. insert into t values(1,'abc',78,'greger2343','grtg');
  9. insert into t values(2,'dgre',44,'jty','grtg');
  10. insert into t values(3,'grhg',65,'66k','ghre');
  11. insert into t values(4,'muy',68,'yj','g5');
  12. insert into t values(5,'54yn',98,'67','54h');
  13. [root@everIover ~]#
復(fù)制代碼

論壇徽章:
4
金牛座
日期:2013-12-12 16:11:30巨蟹座
日期:2013-12-13 10:20:3615-16賽季CBA聯(lián)賽之佛山
日期:2016-11-15 13:45:3515-16賽季CBA聯(lián)賽之廣夏
日期:2016-11-23 19:54:58
7 [報(bào)告]
發(fā)表于 2013-12-23 17:18 |只看該作者
  1. bogon:~>cat sss.sh
  2. #!/bin/bash

  3. if [ $1 -le 5 ] && [ $1 -ge 1 ];then
  4.     awk -vM=$1 '{split($0,a,"[(,)]");printf a[1]"(";for(i=2;i<=6;i++){if(i!=M+1)printf a[i];if(i > 2&& i<6 && i!=M) printf ",";}printf ");\n"}' tmp
  5. else
  6.     echo "error! use arg[1-5]"
  7. fi
  8. exit 0
復(fù)制代碼

QQ截圖20131223171722.jpg (90.19 KB, 下載次數(shù): 67)

QQ截圖20131223171722.jpg

論壇徽章:
3
亥豬
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉雞
日期:2014-02-12 10:46:13
8 [報(bào)告]
發(fā)表于 2013-12-23 17:26 |只看該作者
yestreenstars

jason680


兩位兄臺(tái)的大體思路都是一樣的,利用 -V  接受外部參數(shù)(小弟第一次見有這用法),AWK中的多分隔符,然后在ACTION中加以判斷處理。
感謝兩位!小弟受教了。     {:3_189:}

論壇徽章:
3
亥豬
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉雞
日期:2014-02-12 10:46:13
9 [報(bào)告]
發(fā)表于 2013-12-23 17:27 |只看該作者
效率也忒高了    哈哈

論壇徽章:
3
亥豬
日期:2013-08-28 12:50:23白羊座
日期:2013-11-25 12:55:50酉雞
日期:2014-02-12 10:46:13
10 [報(bào)告]
發(fā)表于 2013-12-23 17:34 |只看該作者
回復(fù) 7# 0x1024


多謝兄臺(tái)!


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP