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

Chinaunix

標(biāo)題: awk截取特定之符之間的文件,并格式化輸出 [打印本頁]

作者: 重樓君    時間: 2016-05-03 20:03
標(biāo)題: awk截取特定之符之間的文件,并格式化輸出
向各位大神請教下,我有一個文件是下面這種格式
#####
a
b
c
#######
c
d
#####

如果想輸出為下面這種格式,
a:b:c
c:d


用awk要怎么實現(xiàn)?
作者: haooooaaa    時間: 2016-05-03 20:12
  1. awk -vRS='\n?#+\n?' -F'\n' -vOFS=':' '$1=$1' file
  2. a:b:c
  3. c:d
復(fù)制代碼

作者: 重樓君    時間: 2016-05-03 20:19
謝謝神,前面看懂了,但后面的"$1=$1"是什么意思?回復(fù) 2# haooooaaa


   
作者: tolilong    時間: 2016-05-03 20:21
awk -vRS="#"  'BEGIN{OFS=":"}NF>0{$1=$1;print $0}' filename
作者: haooooaaa    時間: 2016-05-03 20:24
回復(fù) 3# 重樓君


    用這個,一看就明白
  1. awk '!/#/{a=a?a":"$0:$0}/#/&&a{print a;a=""}' file
  2. a:b:c
  3. c:d
復(fù)制代碼

作者: 重樓君    時間: 2016-05-03 20:26
謝謝。回復(fù) 4# tolilong


   
作者: 重樓君    時間: 2016-05-03 20:26
謝謝。回復(fù) 5# haooooaaa


   
作者: sunzhiguolu    時間: 2016-05-03 20:54
本帖最后由 sunzhiguolu 于 2016-05-03 20:57 編輯
  1. perl -nle 'BEGIN{$,=":"}if(!/\A#/){push(@a,$_);next}print splice(@a)' f
復(fù)制代碼

作者: moperyblue    時間: 2016-05-04 11:05
  1. awk -vRS='#' -vOFS=':' 'NF+=0'
  2. sed -n '/#/{n;:a;$!N;/\n#/!{s/\n/:/;ta};P;D}'
復(fù)制代碼

作者: 重樓君    時間: 2016-05-04 14:34
謝謝,如何要輸出成這種格式呢?
  1. a: b c
  2. c: d
復(fù)制代碼
回復(fù) 9# moperyblue


   
作者: moperyblue    時間: 2016-05-04 14:48
回復(fù) 10# 重樓君
  1. awk -vRS='#' 'NF{$1=$1":";print}'
  2. sed -n '/#/{n;N;s/\n/: /;:a;N;/\n#/!{s/\n/ /;ta};P;D}'
復(fù)制代碼

作者: 重樓君    時間: 2016-05-04 15:37
謝謝大神回復(fù) 11# moperyblue


   




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