如何在同一行中一个接一个地添加字符串而不是新行?

时间:2018-11-06 10:30:26

标签: bash unix

im收拢一些字符串并将其写入文本文件,但是每次将其写入新行时,是否有办法在制表符空间后的同一行中进行打印?下面是我的代码,谢谢。

grep -oi "Part.*Time.*[0-9]*" $EachLineFile | grep -oi "Pa..: [0-9]" >> $String

3 个答案:

答案 0 :(得分:0)

grep在每次比赛后都会打印换行符。 您可以使用tr删除。

尝试以下操作:

grep -oi "Part.*Time.*[0-9]*" $EachLineFile | grep -oi "Pa..: [0-9]" | tr '\r\n' '\t' >> $String

tr '\r\n' '\t'删除所有换行符,并放置tab

答案 1 :(得分:0)

我发现tr有点危险,尤其是如果您不知道gre行中的内容时。但是@Davide的先前答案将在您完全了解其内容的情况下起作用。 (将所有\ r都更改为\ t,所有\ n都执行相同操作,可能会创建2个制表符作为分隔符)

我的建议是awk

grep -oi "Part.*Time.*[0-9]*" $EachLineFile | grep -oi "Pa..: [0-9]" | awk '{print}' ORS="\t"  >> $String

答案 2 :(得分:0)

您也可以使用paste -s

grep -oi "Part.*Time.*[0-9]*" $EachLineFile | 
  grep -oi "Pa..: [0-9]"                    |
  paste -s