我有以下文件(F1):
if a equals b
you
three aggbc four
我希望输出为:
if a equals b b b
you you you
three aggbc four four four
我运行以下命令:
sed -re 's/.*([^ ]+)[ |$]/\0 \1 \1/' F1
但它不起作用。
我得到的输出是错误的:
if a equals s sb
you
three aggbc c cfour
我需要它作为sed
命令。
答案 0 :(得分:2)
sed -r 's/^(.* )?(.*)$/\1\2 \2 \2/' F1
答案 1 :(得分:0)
正则表达式特价在角色类中失去了特殊意义。所以[ |$]
匹配单个字符,可以是空格,管道或美元符号。试试这个;
sed -re 's/.*([^ ]+) *$/& \1 \1/' F1
另请注意,我已将\0
更改为&
。我没有在\0
中看到sed
,但如果您支持{{1}},那么对您有更多的权力。
答案 2 :(得分:0)
如果你对学习awk感兴趣,那就是:
awk '{print $0 FS $NF FS $NF}' file
awk '{$NF=$NF FS $NF FS $NF}1' file