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'您必須使用某種技巧再次新增最後一個換行符號。

相關內容