Echo将我的标签更改为空格

时间:2011-02-26 16:01:57

标签: bash delimiter

我从网上采取以下结构作为如何从BASH中的文件读取的基本示例:

cat inputfile.txt | while read line; do echo $line; done

我的inputfile.txt是制表符分隔的,并且来自上述命令的行是以空格分隔的。

这在我的实际应用程序中引起了我的问题,这当然比上面的更复杂:我想采取行,基于它生成一些新的东西,然后输出原始行加上新的东西作为额外的领域。并且管道很复杂,没有一堆cut -d ' 'sed -e 's/ /\t/g'(对于包含空格的制表符分隔数据来说,这是不安全的。)

我看过IFS解决方案,但在这种情况下它们似乎没有帮助。我想要的是一个OFS ...除了我是回声,而不是awk!我想如果我能够得到回应来吐出我给它的东西,逐字逐句,我会处于良好的状态。有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:30)

尝试:

cat inputfile.txt | while read line; do echo "$line"; done

代替。

换句话说,它不是read替换标签,而是echo

请参阅以下文字记录(使用选项卡所在的<<tab>>):

pax$ echo 'hello<<tab>>there' | while read line ; do echo $line ; done
hello there

pax$ echo 'hello<<tab>>there' | while read line ; do echo "$line" ; done
hello<<tab>>there