string - 如何使用 bash 在每一行中复制字符串?

标签 string bash

我有一个文本文件,每一行都包含这样的字符串:

'abc',
'dog',
'zebra',

我想把它变成这样:

'abc', 'abc',
'dog', 'dog',
'zebra', 'zebra',

在 bash 中如何最好地做到这一点?

最佳答案

你可以调用sed:

sed -r 's/(.*)/\1 \1/' dupcol.csv

.* 表示重复匹配一行中的任何字符。它周围的 ( ) 表示将匹配项存储在第一个寄存器 (\1) 中。然后输出全匹配两次。

我通常默认使用 sed 的 -r 选项来制作更清晰(扩展)的正则表达式。但是,省略 -r 可以使 & 匹配完整模式。因此,您希望保持完整匹配的这种特殊情况的更简单版本是:

sed -r 's/.*/& &/' dupcol.csv

如果您想就地更改文件,请添加 -i 选项。

关于string - 如何使用 bash 在每一行中复制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001182/

相关文章:

node.js - 为什么我不能通过管道 npm install 到 sed,同时保留颜色和进度更新?

linux - 在 awk 中访问 shell 变量但不解释

string - 我应该在 Perl 中使用 $hash {"string"} 还是 $hash{string} ?

bash - shell 中的 grep 无法按预期工作

linux - sed 命令如何与多个组一起使用

c++ - boost::erase_all 从字符串中删除多个字符

bash - 根据进程退出代码退出 Shell 脚本

java - 对 java Map<String, List<String>> 中的 Map 元素进行逆序排序

java - 原始 boolean 值到字符串的连接/转换

string - 如何在Matlab中提取字符串向量的第一个单词?