想要转换以下模式
AB 光盘 德 fg as
使用unix / linux命令'ab','cd','de','fg'。
----伙计-------- patern如下
QRTC1065173134 QRTC3988977812 QRTC0889556882 QUTR1641276912 ABCD1763495154 QRTC3991601819
这是必需的模式'QRTC1065173134','QRTC3988977812','QRTC0889556882','QUTR1641276912','ABCD1763495154','QRTC3991601819'
答案 0 :(得分:0)
我赞同这些评论有点不清楚但是,为了好玩的缘故:
A="ab cd ef gh "
echo $A | sed -e "s/^\s*/'/; s/ \{1,\}/','/g; s/\s*$/'/g"
由于问题不准确,我只研究过空间和字符串边界。因此它可以使用任意数量的字符,分隔的空格。结果也在两端修剪。 HTH。
答案 1 :(得分:0)
从澄清来看,这似乎就是你想要的。
$ echo "QRTC1065173134 QRTC3988977812 QRTC0889556882 QUTR1641276912 ABCD1763495154 QRTC3991601819" | sed -E "s/ /', '/g" | sed -E "s/$/'/" | sed -E "s/^/'/"
'QRTC1065173134', 'QRTC3988977812', 'QRTC0889556882', 'QUTR1641276912', 'ABCD1763495154', 'QRTC3991601819'
这里" E"用于扩展正则表达式,以便我们不需要转义正则表达式元字符。
评论1:删除额外的空格留给你练习。
答案 2 :(得分:0)
如果我理解正确,你有一些用空格分隔的组(例如ab bc de ...),你希望在所有内容的开头/结尾包含'
,并用{替换空格{1}}然后','
可以相对轻松地处理这个问题。 sed
ab
下方...可以是任意字符串,例如cd
。有几种方法可以将匹配的正则表达式拼凑在一起,但以下内容非常简单:
QRTC1065173134
示例强>
sed -e "s/\s/','/g" -e "s/^/'/" -e "s/$/'/"
或
$ echo "ab cd de fg hi" | sed -e "s/\s/','/g" -e "s/^/'/" -e "s/$/'/"
'ab','cd','de','fg','hi'