我一直在阅读教程,我需要使用cat和paste函数(用于创建一种数组,表),所有教程都在文件上使用这些命令,从硬盘读取文件正在完成我的任务非常非常慢,所以我想知道如何将它们与变量一起使用,我尝试并得到了错误的结果,所以也许你可以帮助我使用它的sintaxis。
基本上我想在这样的变量中创建一个表:
00001 Tacos
00023 pizza
00076 burger
00103 chopsuey
00167 burrito
01034 Tamales
我在执行程序并从输出中获取特定数据后得到每个元素,所以我得到了:
你不必执行该程序,只是想确保cat和paste是在这里使用的和他们的语法,如果他们不是我接受任何建议。
抱歉,我可能没有解释自己,对不起,我有一个和b,两个变量,一个是00001,而且是Tacos,然后我希望它们合并在一起并存储它们在变量中,然后再次执行相同操作,但将它们放在一个新行中。对不起有误。
最后,我想要一个变量:
00001 Tacos
00023 pizza
00076 burger
00103 chopsuey
00167 burrito
01034 Tamales
谢谢!
答案 0 :(得分:2)
如果您的工具仅处理文件作为输入(例如diff
或paste
),您可以使用<(…)
表示法创建一个伪造文件,其内容由shell命令:
cat <(echo "hello world")
这将打印hello world
。伪文件缺少磁盘文件的一些功能;例如,它不能seek
。因此,想要seek
文件中特定位置的程序,例如两次读取文件,将会失败。但对于你的情况,它应该足够了,你可以使用这样的东西:
paste <(echo "$a") <(echo "$b")
对于你的情况更具体:
cat input.txt | {
x=''
y=''
while read a
do
read b
x=$(echo "$x"; echo "$a")
y=$(echo "$y"; echo "$b")
done
paste <(echo "$x") <(echo "$y")
}
(我假设输入是这里的:)
00001
Tacos
00023
pizza
00076
burger
00103
chopsuey
00167
burrito
01034
Tamales