我可以使用 Linux Bash 中的 sed 将文件的每一行文本翻倍吗?

我可以使用 Linux Bash 中的 sed 将文件的每一行文本翻倍吗?

我可以使用 Linux Bash 中的 sed 将文件的每一行文本翻倍吗?

示例文件:

aab1
aac2
awq6a
azs4

我想要的是:

aab1 | aab1
aac2 | aac2
awq6a | awq6a
azs4 | azs4

我知道“读行”,但我该怎么做:

  • 仅使用 sed 命令?
  • 通过使用“读行”?

ps. 我想将 dir 输出命令的每一行都翻倍,以便用于操作。

答案1

使用 read 非常简单

while IFS= read -r line; do printf "%s | %s\n"  "$line" "$line" ; done < filename

sed 不再复杂

sed -r 's/(.*)/\1 | \1/' filename

一般来说,如果您把已经尝试过的内容包括在内,我们会更有帮助,这样我们就知道您正在学习,而不会重复您的努力。

相关内容