2016-12-16 89 views
0

假设我有一个文本文件something.txt。用 4062,2016-12-31Tex发送另一个命令

我想在一个命令中发送“4062”,在脚本的另一个命令中发送“2016-12-31”作为字符串。它可以通过BASH脚本来完成吗?

+0

肯定能。问题在于有很多方法可以做到这一点,但具体细节很大程度上取决于该文件的确切内容以及您想要如何处理它。从这个意义上讲,你可以查看诸如sed,awk等工具;或者只是关于shell编程的通用教程;但不要指望坐下来全面消化你的问题,教你如何解决问题。我们帮助解决具体问题;不是“我的愿景,但没有线索,请填补空白”。 – GhostCat

+0

你的意思是“发送命令”是什么意思? –

+0

像我的命令是“{print $ 2”,0“$ 1”,field1,field2“}”。我想在field1和2016-12-31 field2中发送4062。该命令保存在另一个文件中。 –

回答

0

这将在大多数情况下工作,除非你正在处理一个非常大的文件。

for line $(cat yourfile.txt) 
do 
    field1=$(echo $line | cut -f1 -d,) 
    field2=$(echo $line | cut -f2 -d,) 
    your_command_1 $field1 
    your_command_2 $field2 
done 
+0

'while read line;做...;完成

+0

就像我的命令是“{print $ 2”,0“$ 1”,field1,field2“}”。我想在field1和2016-12-31 field2中发送4062。此命令保存在另一个文件中 –

0
a=$(cat file.txt); IFS=',' list=($a) ; echo ${list[0]}; echo ${list[1]} 
+1

虽然此代码段可能会解决问题,但它并不能解释为什么或如何回答问题。请[请提供您的代码解释](// meta.stackexchange.com/q/114762/269535),因为这确实有助于提高帖子的质量。 **举报人/评论者:** [仅用于代码解答,如downvote,请勿删除!](// meta.stackoverflow.com/a/260413/2747593)(注意:此答案实际上可能是简单到足以做出解释,从而降低成本,不必要的。你可能还想添加一个解释,以防止更多的NAA/VLQ标志。) –

+0

嗨,思考'这种单线作品'的教育效果如何?严重的是,它是一堆简单的代码。 –

1
IFS="," read -r a b < file 

echo "$a" 
echo "$b" 

输出:

 
4062 
2016-12-31