我在shell腳本實際上是新的。我有一個662,2016-12-31寫的file.txt文件。傳遞字在命令
例如:#cat file.txt的
662,2016-12-31
我有命令 另一個script.sh文件「{打印$ 2" ,0 「$ 1」,FIELD1,FIELD2 }」
例如:#cat script.sh
'{打印$ 2" ,0 「$ 1」,字段1,字段2}'
我想在FIELD1和2016年12月31日打印662在field2中。可以做到嗎?
我在shell腳本實際上是新的。我有一個662,2016-12-31寫的file.txt文件。傳遞字在命令
例如:#cat file.txt的
662,2016-12-31
我有命令 另一個script.sh文件「{打印$ 2" ,0 「$ 1」,FIELD1,FIELD2 }」
例如:#cat script.sh
'{打印$ 2" ,0 「$ 1」,字段1,字段2}'
我想在FIELD1和2016年12月31日打印662在field2中。可以做到嗎?
這可以使用awk
命令很容易地實現。您可以檢查以下簡單的shell腳本,
#!/bin/sh
InputData=`cat file.txt`
field1=`echo $InputData | awk -F "," '{print $1}'`
field2=`echo $InputData | awk -F "," '{print $2}'`
echo "field1=$field1"
echo "field2=$field2"
輸出:
field1=662
field2=2016-12-31
您可以通過使用分隔符爲cut
命令得到FIELD1和FIELD2的價值 「」
field1=`cat file.txt | cut -d "," -f1`
field2=`cat file.txt | cut -d "," -f2`
'{print $2",0"$1",$field1,$field2}'
我想你應該改一下你的問題,因此更清楚 - 這是祕密越來越堆棧溢出一個偉大的答案。現在我不知道你到底想做什麼。 – kamituel
說實話,沒有。但是,請看一下:'cat file.txt | perl的-ne '打印 「字段1:$ 1場2:$ 2 \ n」 如果/(.*),(.*)/''。現在,您可以修改部分'print'後重新排序字段,或者在兩者之間添加一些文字。如果這就是你需要的。 – kamituel
「cat install_offer1.csv | sed's /」880 // g'| sed's /「88 // g'| sed's /」// g'| sed's /,019 /,19/g 「| nawk -F,'{print $ 1',0「$ 2」,field1,field2「}'> install_offer2.csv」其實這是完整的命令,我只想在field1和2016-12-31的地方打印662所以每當我改變file.txt時,命令也會改變,因爲它總是從file.txt中取出參數 –