我想以小写形式向每一行附加相同的字符串

时间:2016-06-26 15:27:48

标签: bash shell append pipe

我有一个文本文件txt.txt,内容如下:

ABc
aBc
aBCD
BLAblaBLA

和其他混合大小写字符串。

我想以小写形式向每一行添加相同的字符串(基本上是为了添加第二列),所以它看起来像这样:

ABc abc
aBc abc
aBCD abcd
BLAblaBLA blablabla

我用这个命令完成了小套件:

cat txt.txt | tr [:upper:] [:lower:]

但我绞尽脑汁试图将每一行添加为txt.txt文件的附加内容。

帮助?

4 个答案:

答案 0 :(得分:4)

使用sed,您可以执行以下操作:

sed -i 's/.*/& \L&/' txt.txt
#   ^     ^  ^  ^^
#   |     |  |  |Whole match
#   |     |  |  Lowercase
#   |     |  Whole match
#   |     Match whole line
#   In place edit, use -i.bak to take a backup.

&\L之间的文字空间可以是您想要的任何内容。

答案 1 :(得分:2)

您可以使用paste组合来自不同来源的列:

tr '[:upper:]' '[:lower:]' < txt.txt | paste txt.txt -

如果您想按空格分隔列,请将-d' '添加到paste

答案 2 :(得分:2)

水平连接文件的缺失命令是paste

 tr '[:upper:]' '[:lower:]' <txt.txt |paste txt.txt -

答案 3 :(得分:2)

简单的Awk脚本似乎是最有效和最易读的便携式解决方案。

awk '{ print $0, tolower($0) }' txt.txt