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



我有以下文件:

F1

<小时 />

这是第一行。

还有第二行。

<小时 />

我希望输出为:

这是第一行。

还有第二行。

<小时 />

我运行以下命令:

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

它确实打印了两倍的行的第一个单词,如下所示:

但我不知道如何打印整行后记。

这是第一行。

还有第二行

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

您也可以

为此使用awk(它应该使其更具可读性):

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

像这样:

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

Using Sed with & command

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

使用纯 bash 很容易

while read -r first rest; do
    printf '%s %s %s %sn' "$first" "$first" "$first" "$rest"
done < F1

最新更新