簡體   English   中英

使用awk或sed添加空白列

[英]Add blank column using awk or sed

我有一個具有以下結構的文件(以逗號分隔)

116,1,89458180,17,FFFF,0403254F98

我想在第四個字段上添加一個空白列,使其變為

116,1,89458180,,17,FFFF,0403254F98

是否有可能使用awk或sed進行任何輸入?

謝謝

假設所有字段都不包含嵌入式逗號,則可以將任務重新聲明為用兩個逗號替換第三個逗號。 這只是:

sed 's/,/,,/3'

與文件中的示例行:

$ echo "116,1,89458180,17,FFFF,0403254F98" | sed 's/,/,,/3'
116,1,89458180,,17,FFFF,0403254F98

您可以使用此awk

awk -F, '$4="," $4' OFS=, yourfile

(要么)

awk -F, '$4=FS$4' OFS=, yourfile

如果要添加第六和第八字段,

awk -F, '{$4=FS$4; $1=FS$1; $6=FS$6}1' OFS=, yourfile

通過awk

$ echo '116,1,89458180,17,FFFF,0403254F98' | awk -F, -v OFS="," '{print $1,$2,$3,","$4,$5,$6}'
116,1,89458180,,17,FFFF,0403254F98
  • 它打印,之后第三字段由(分隔) ,

通過GNU sed

$ echo 116,1,89458180,17,FFFF,0403254F98| sed -r 's/^([^,]*,[^,]*,[^,]*)(.*)$/\1,\2/'
116,1,89458180,,17,FFFF,0403254F98
  • 它捕獲直到第三個命令的所有字符,並將其存儲到一個組中。 字符,包括第三,高達最后被存儲到另一組。 在更換零件,我們只需要加一個,這兩個拍攝組之間。 通過Basic sed,

通過基本sed

$ echo 116,1,89458180,17,FFFF,0403254F98| sed 's/^\([^,]*,[^,]*,[^,]*\)\(.*\)$/\1,\2/'
116,1,89458180,,17,FFFF,0403254F98

echo 116,1,89458180,17,FFFF,0403254F98|awk -F',' '{print $1","$2","$3",,"$4","$5","$6}'

非awk

t="116,1,89458180,17,FFFF,0403254F98"
echo $(echo $t|cut -d, -f1-3),,$(echo $t|cut -d, -f4-)

您可以使用bellow awk命令來實現這一點,將$ 3替換為您想使其空白的任何列。

awk -F,'{$ 3 =“” FS $ 3;} 1'OFS =,文件名

sed -e 's/\([^,]*,\)\{4\}/&,/' YourFile

自行替換4 [內容(非逗號),而不是逗號)的序列,然后用逗號替換

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM