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

Chinaunix

標(biāo)題: 怎么把有一列是特定字符打頭的行去掉呢? [打印本頁]

作者: tingshuibanxia    時(shí)間: 2015-03-30 11:43
標(biāo)題: 怎么把有一列是特定字符打頭的行去掉呢?
求助:
文本結(jié)構(gòu)如下:
1 e2 3_er we 1111 3434 ii - y 132 yuy QE_99999 EWE 33
KK 2 30er VD 5543 G678 ii - O 177 OOO AC_777 EWE 33

請(qǐng)問怎樣將第12列是QE打頭的那一行去掉呢?
作者: 我是一隻羊    時(shí)間: 2015-03-30 12:02
  1. awk '$12!~/^QE/' inputfile
復(fù)制代碼

作者: fenghedong_007    時(shí)間: 2015-03-30 15:03
回復(fù) 1# tingshuibanxia

[root@promote bash]# cat 2.txt | sed 's/QE_99999//g'
1 e2 3_er we 1111 3434 ii - y 132 yuy  EWE 33
KK 2 30er VD 5543 G678 ii - O 177 OOO AC_777 EWE 33
   
作者: drakness    時(shí)間: 2015-03-30 15:07
  1. awk '/QE/{$0="";next}1' urfile
復(fù)制代碼

作者: zsszss0000    時(shí)間: 2015-03-30 15:10
  1. sed '/QE_/d' file
復(fù)制代碼
回復(fù) 3# fenghedong_007


   
作者: fenghedong_007    時(shí)間: 2015-03-30 16:12
回復(fù) 5# zsszss0000


    呵呵,需求沒看清楚。
作者: dn833    時(shí)間: 2015-03-30 22:35
  1. ggrep -P '^([^\s]+\s+){11}[^Qq][^Ee]'
復(fù)制代碼

作者: Windows19    時(shí)間: 2015-03-30 22:38
本帖最后由 Windows19 于 2015-03-30 22:47 編輯

借樓主題目發(fā)揮請(qǐng)問一下各位
1 e2 3_er we 1111 3434 ii - y 132 yuy QE_99999 EWE 33
KK 2 30er VD 5543 G678 ii - O 177 OOO AC_777 EWE 33
怎樣將第5列排在前面呢?
需求:
1111 1 e2 3_er we 3434 ii - y 132 yuy QE_99999 EWE 33
5543 KK 2 30er VD G678 ii - O 177 OOO AC_777 EWE 33

作者: 吵吵機(jī)器人    時(shí)間: 2015-03-30 22:49
回復(fù) 1# tingshuibanxia


    看樓上的大神都寫的很好啊,我自己也寫一個(gè)參與一下。
    awk '{if($12!~/^QE/) print}' inputfile
作者: dn833    時(shí)間: 2015-03-30 22:49
Windows19 發(fā)表于 2015-03-30 22:38
借樓主題目發(fā)揮請(qǐng)問一下各位
1 e2 3_er we 1111 3434 ii - y 132 yuy QE_99999 EWE 33
KK 2 30er VD 5543 ...
  1. gsed -r 's/(([0-9a-zA-Z_-]+ +){4})([0-9a-zA-Z_-]+ +)(.*)/\3\1\4/'
復(fù)制代碼

作者: Windows19    時(shí)間: 2015-03-30 23:00
本帖最后由 Windows19 于 2015-03-30 23:13 編輯

回復(fù) 10# dn833


    第5列是數(shù)字字母可以  如果適巧第5列有符號(hào)也有中文的 ,我要有選擇性的第2列,或者第4列排前?這倒要如何寫?
作者: jason680    時(shí)間: 2015-03-30 23:55
回復(fù) 11# Windows19


$ seq -s" " 10 | awk -vk=5 '{t=$k;for(n=k;n>1;n--)$n=$(n-1);$1=t}1'
5 1 2 3 4 6 7 8 9 10

$ seq -s" " 10 | awk -vk=4 '{t=$k;for(n=k;n>1;n--)$n=$(n-1);$1=t}1'
4 1 2 3 5 6 7 8 9 10

$ seq -s" " 10 | awk -vk=2 '{t=$k;for(n=k;n>1;n--)$n=$(n-1);$1=t}1'
2 1 3 4 5 6 7 8 9 10
   
作者: Windows19    時(shí)間: 2015-03-31 08:18
本帖最后由 Windows19 于 2015-03-31 08:27 編輯

回復(fù) 12# jason680


    謝謝,可以了,而且非常好使!能將代碼再優(yōu)化一下不?我想將任意列放在任意列(列數(shù)可調(diào),即任意列放到任意列)
這條代碼是處理以空格為分隔符的,確實(shí)是非常好使,能否將她改寫一下能處理有符號(hào)為隔符的呢?(也是列數(shù)可選的,任意列放到任意列)
謝謝您哦,大神
作者: zsszss0000    時(shí)間: 2015-03-31 08:51
本帖最后由 zsszss0000 于 2015-03-31 08:53 編輯

試試這個(gè)看看
  1. awk '{s=$5;$5="";print s,$0}' file
復(fù)制代碼
仿照680大神的可以這樣寫
  1. awk -vk=4 '{s=$k;$k="";print s,$0}'
復(fù)制代碼
回復(fù) 8# Windows19


   
作者: Windows19    時(shí)間: 2015-03-31 09:39
回復(fù) 14# zsszss0000


    哦,試過了,也可以,能否按照13樓需求寫2條代碼我?
作者: zsszss0000    時(shí)間: 2015-03-31 09:49
你想要什么分割符號(hào)呢?
awk -vFS="此處填寫分割符號(hào)"
Windows19 發(fā)表于 2015-03-31 08:18
回復(fù) 12# jason680

作者: Windows19    時(shí)間: 2015-03-31 10:07
回復(fù) 16# zsszss0000


    就---這個(gè)分隔符為例吧
作者: zsszss0000    時(shí)間: 2015-03-31 10:17
file is
  1. 1---e2---3_er---we---1111---3434---ii-------y---132---yuy---QE_99999---EWE---33
  2. KK---2---30er---VD---5543---G678---ii-------O---177---OOO---AC_777---EWE---33
復(fù)制代碼
  1. awk -vFS="---" -vOFS="---" -vk=4 '{s=$4;$4="";print s,$0}' file
復(fù)制代碼
  1. we---1---e2---3_er------1111---3434---ii-------y---132---yuy---QE_99999---EWE---33
  2. VD---KK---2---30er------5543---G678---ii-------O---177---OOO---AC_777---EWE---33
復(fù)制代碼
如果原文本中沒有---分隔符,則去掉-vFS="---"即可

回復(fù) 17# Windows19


   
作者: Windows19    時(shí)間: 2015-03-31 10:26
本帖最后由 Windows19 于 2015-03-31 10:27 編輯

回復(fù) 18# zsszss0000


    哦,謝謝,我試下
作者: Windows19    時(shí)間: 2015-03-31 11:09
本帖最后由 Windows19 于 2015-03-31 11:09 編輯

KK 2 30er VD 5543 G678 ii O 177 OOO AC_777 EWE 33
1---e2---3_er---we---1111---3434---ii-------y---132---yuy---QE_99999---EWE---33
剛才以上面例子測試了下得出下面結(jié)果    以空格分隔符分例的會(huì)現(xiàn)首尾多加了符號(hào)?
  
---KK 2 30er VD 5543 G678 ii O 177 OOO AC_777 EWE 33-------多加了紅色的
we--1---e2---3_er-----1111---3434---ii-------y---132---yuy---QE_99999---EWE---33這個(gè)就正確
作者: dqiu350508    時(shí)間: 2015-03-31 19:44
本帖最后由 dqiu350508 于 2015-03-31 20:06 編輯
  1. awk '$12 !~ /QE_.*/{print}' filename
復(fù)制代碼

作者: dn833    時(shí)間: 2015-04-01 17:47
回復(fù) 11# Windows19


    那就把正則改成[ ]+[^ ]+




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2