如何将多行输入转换为 single/multiple 行输出 | BASH

How to convert a multiple line input into single/multiple line output | BASH

我真正想要的

输入:

<int> 
45
</int>
<string>
Name
</string>

输出:

<int> 45 </int>
<string> Name </string>

这是我到目前为止(需要调整)为上述所需输出提出的内容:

printf "please enter some values \n"
readarray -t arr 

echo "" ${arr[@]} && cat >> input.txt

我的输出:<int> 45 </int> <string> Name </string>

使用printf

$ printf '%s %s %s\n' $(cat input.txt)
<int> 45 </int>
<string> Name </string>

当你想合并每3行时,你可以使用

cat inputfile | paste -d " " - - -

当您的值可以超过一行时,您可以使用

tr -d '\n' < inputfile | sed 's#</[^>]*>#&\n#g'

awk :

awk '/<\/.*>/ {print; next} {printf [=12=]}' inputfile