我有一个文本文件,每一行都包含字符串,如下所示:
'abc',
'dog',
'zebra',
Run Code Online (Sandbox Code Playgroud)
我想让它像:
'abc', 'abc',
'dog', 'dog',
'zebra', 'zebra',
Run Code Online (Sandbox Code Playgroud)
在 bash 中如何最好地做到这一点?
您可以致电sed:
sed -r 's/(.*)/\\1 \\1/' dupcol.csv\nRun Code Online (Sandbox Code Playgroud)\n\n表示.*重复匹配一行上的任何字符。它( )周围说将匹配存储在第一个寄存器(\\1)中。然后将完整匹配输出两次。
我通常默认使用 sed\xe2\x80\x99s-r选项来制作更清晰(扩展)的正则表达式。但是,省略-r可以&匹配完整的模式。因此,您想要保持完整匹配的这种特殊情况的一个简单版本是:
sed -r 's/.*/& &/' dupcol.csv\nRun Code Online (Sandbox Code Playgroud)\n\n如果您想就地更改文件,请添加该-i选项。