我正在玩sed对文本进行操作。输入类似于:
가가라 a b a e
블랙 c dd we df
사무소 as le we
我需要在其上添加一些格式,因此输出应为:
id { id: "가가라" } value { val: "a b a e"} word { word: "가가라"}
id { id: "블랙" } value { val: "c dd we df"} word { word: "블랙"}
id { id: "사무소" } value { val: "as le we"} word { word: "사무소"}
问题是,我知道如何在刺痛之前和之后添加字符串:
在字符串的开头添加字符串:
sed 's/^/id \{ id: \"/'
在字符串的末尾添加字符串:
sed 's/$/\"\} word \{ word: \"/'
但是,当我尝试在每一行的末尾添加字符가가라时,我试过的这个命令不起作用:
sed -r 's/(id\s\{\sid:\s\")([^a-z]*)[\sa-z]{1,10}(\"\}\sword\s\{\sword:\s\")/\1\2\3\2/'
此外,我不确定如何在字符串가가라和b e e之间添加字符串。我试图使用正则表达式,但似乎没有用。
答案 0 :(得分:1)
尝试这个sed行:
sed -r 's/(\S+)\s*(.*)/id { id: "\1" } value { val: "\2"} word { word: "\1"}/' file
使用您的数据进行测试:
kent$ echo "가가라 a b a e
블랙 c dd we df
사무소 as le we"|sed -r 's/(\S+)\s*(.*)/id { id: "\1" } value { val: "\2"} word { word: "\1"}/'
id { id: "가가라" } value { val: "a b a e"} word { word: "가가라"}
id { id: "블랙" } value { val: "c dd we df"} word { word: "블랙"}
id { id: "사무소" } value { val: "as le we"} word { word: "사무소"}