im收拢一些字符串并将其写入文本文件,但是每次将其写入新行时,是否有办法在制表符空间后的同一行中进行打印?下面是我的代码,谢谢。
grep -oi "Part.*Time.*[0-9]*" $EachLineFile | grep -oi "Pa..: [0-9]" >> $String
答案 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