Linux tr 将垂直文本转换为水平文本

Linux tr 将垂直文本转换为水平文本

我一直在读关于https://stackoverflow.com/questions/39791042/convert-vertical-text-into-horizo​​ntal-in-shell 并想知道是否tr可以单独使用将垂直文本转换为水平文本。

user@linux:~$ seq 3
1
2
3
user@linux:~$ 

我尝试过以下解决方案,它有效但并不完美。

user@linux:~$ seq 3 | tr -d '\n'
123user@linux:~$ 
user@linux:~$ 

单独使用是否可以tr产生这样的输出?

所需输出

user@linux:~$ seq 3 | tr command here
123
user@linux:~$ 

答案1

选择对你有用的东西。

$ seq 3 | paste -s -d ''
123
$ seq 3 | tr -d '\n';echo
123
$ seq 3 | awk 1 ORS='';echo
123

答案2

$ seq -s '' 3
123

这指示seq使用空字符串作为数字的分隔符(而不是默认的换行符)。

答案3

尝试这个,

 seq 3 | paste -s -d ''
 123
  • -d,分隔符为空
  • -s,串行打印而不是并行打印

答案4

解决方案可能是

echo $(seq 3 | tr -d '\n')

当您使用 switch 删除所有换行符时,-d '\n'您必须使用某种技巧再次添加最后一个换行符。

相关内容