2016-04-28 26 views
-1

不知道這是可能的,但我有這樣值的列表:把身邊的每一句話報價在一條線上

#value, 
#value2, 
#value-3 

一些有破折號他們,最後一行沒有逗號。我需要在每個單詞附加單引號,如下所示:

#'value', 
#'value2', 
#'value3' 

我該如何實現這一目標?

回答

1

你可以使用sed

假設你的列表是list.txt

sed "s/^#\([^,]*\)\(,\?\)$/#\'\1\'\2/" < list.txt 

將工作如下。

它將取代每一行

  1. 開始與#。在sed,這是寫爲^#
  2. 具有的字符序列,不包含逗號 - \([^,]*\)
  3. 和可選的逗號 - \(,\?\)
  4. ,別無其他 - $

與行 具有#,撇號\`,第一序列\1,另一撇號和第二序列\2

在這裏,我們去

sed "s/^#\([^,]*\)\(,\?\)$/#\'\1\'\2/" <<END 
> #value, 
> #value2, 
> #value-3 
> . 
> END 
#'value', 
#'value2', 
#'value-3' 
. 
+0

把一個例子,我會接受這裏 – Pete

+0

@Pete是一個例子,排序的。 –

1

這應做到:

sed "s/^#\([^,]*\)\(.*\)/#'\1'\2/" 
0

使用awk的,你可以這樣做:

awk 'BEGIN{FS=OFS=","} {$1 = "#\047" substr($1, 2) "\047"} 1' file 

#'value', 
#'value2', 
#'value-3'