2016-12-16 64 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