我从网络中采用以下结构作为如何从BASH中的文件读取的基本示例:
cat inputfile.txt | while read line; do echo $line; done
Run Code Online (Sandbox Code Playgroud)
但是,我的inputfile.txt是制表符分隔的,并且来自上述命令的行是以空格分隔的.
这在我的实际应用程序中引起了我的问题,这当然比上面的更复杂:我想采取行,基于它生成一些新的东西,然后输出原始行加上新的东西作为额外的字段.与管道将要足够复杂而不一堆cut -d ' '和sed -e 's/ /\t/g'(这将不会是包含空格反正制表符分隔数据安全).
我看过IFS解决方案,但在这种情况下它们似乎没有帮助.我想要的是一个OFS ...除了我是回声,而不是awk!我想如果我能够得到回应来吐出我给它的东西,逐字逐句,我会处于良好的状态.有什么想法吗?谢谢!
pax*_*blo 30
尝试:
cat inputfile.txt | while read line; do echo "$line"; done
Run Code Online (Sandbox Code Playgroud)
代替.
换句话说,它不是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12103 次 |
| 最近记录: |