打印该行的第一个单词两次,然后是该行的其余部分

时间:2014-01-05 21:35:06

标签: bash sed

我有以下文件:

F1


  

这是第一行。

     

第二行。


我希望输出为:

  

这是第一行。

     

And And And the line。


我运行以下命令:

  

sed -re's /([^] +)。* / \ 1 \ 1 /'F1

它会打印两行第一个单词,如下所示:

  

这个

     

And And

但我不知道如何打印整行后续文字。

  

这个这是第一行。

     

第二行

我需要它作为'sed'命令。

5 个答案:

答案 0 :(得分:3)

您也可以使用awk(它应该使它更具可读性):

awk '{print $1, $1, $0}' F1

答案 1 :(得分:1)

像这样:

sed -re 's/([^ ]+)(.*)/\1 \1 \1\2/' F1

答案 2 :(得分:0)

sed -re 's/([^ ]+).*/\1 \1 \0/' F1

答案 3 :(得分:0)

使用Sed和&命令

sed -re 's/([^ ]+)/& \1 \1/' F1

答案 4 :(得分:0)

使用纯

非常容易
while read -r first rest; do
    printf '%s %s %s %s\n' "$first" "$first" "$first" "$rest"
done < F1