亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教怎樣能取到變量值 [打印本頁]

作者: robinhappiness    時間: 2015-09-24 15:18
標(biāo)題: 請教怎樣能取到變量值
sendpath="/a/b/c"
receivepath="e/f/g"

請教高手,上面的變量寫在函數(shù)中時,為什么$sendpath取不到/a/b/c
$receivepath取不到e/f/g
print兩個變量取到的都為空。
get("$sendpath"),get("$receivepath")

作者: songyc_2015    時間: 2015-09-24 15:22
上代碼。。。。。
作者: yjh777    時間: 2015-09-24 15:40
回復(fù) 1# robinhappiness

> $receivepath取不到e/f/g
> print兩個變量取到的都為空。
> get("$sendpath"),get("$receivepath")

shit 說清楚, 什么上下文,  shell 里面沒有  get("$var") 這種用法
什么語言?



   
作者: robinhappiness    時間: 2015-09-24 16:14
本帖最后由 robinhappiness 于 2015-09-24 16:15 編輯

shell腳本,詳細(xì)如下!

$cat /home/read.csv
#data A
filename,systemName,countA,countB
A00001,AAAA,1,
A00002,BBBB,2,
A00003,CCCC,3,

countA的件數(shù)在/csvA下取得
wc -l /csvA/A00001-20150901-001
wc -l /csvA/A00002-20150902-002
wc -l /csvA/A00003-20150903-003

countB的件數(shù)在/countcsvA下取得。
wc -l /countcsvA/A00001.csv
wc -l /countcsvA/A00002.csv
wc -l /countcsvA/A00003.csv

想得到的輸出文件result.csv的格式是
#data A
filename,systemName,countA,countB
A00001,AAAA,1,4
A00002,BBBB,2,5
A00003,CCCC,3,3

單獨在終端下執(zhí)行如下命令,正常通過。
$ awk 'function get(dir,file,line){cmd="wc -l "dir"/"file;cmd|getline line;close(cmd);return(line+0)}BEGIN{FS=OFS=","}{if(!p){print;if($1=="filename")p=1;next}print $1,$2,get("/csvA",$1"*"),get("/countcsvA",$1".csv")}' read.csv
#data A
filename,systemName,countA,countB
A00001,AAAA,1,6
A00002,BBBB,2,4
A00003,CCCC,3,5
----------------------------------------------
如果定義變量
sendpath="/csvA"
receivepath="/countcsvA"

寫在shell腳本中,cat test.sh
---------------------------------------
#!/bin/bash

sendpath="/csvA"
receivepath="/countcsvA"

$ awk 'function get(dir,file,line){cmd="wc -l "dir"/"file;cmd|getline line;close(cmd);return(line+0)}BEGIN{FS=OFS=","}{if(!p){print;if($1=="filename")p=1;next}print $1,$2,get($sendpath,$1"*"),get(receivepath,$1".csv")}' read.csv
---------------------------------------
$./test.sh 執(zhí)行之后提示
wc: /A00001*: file or directory is not exist
wc: /A00001.csv: file or directory is not exist
wc: /A00002*: file or directory is not exist
wc: /A00002.csv: file or directory is not exist
wc: /A00003*: file or directory is not exist
wc: /A00003.csv: file or directory is not exist
-----------------------------------------------------------




作者: yjh777    時間: 2015-09-24 17:33
#!/bin/bash

> sendpath="/csvA"
> receivepath="/countcsvA"

> $ awk 'function get(dir,file,line){cmd="wc -l "dir"/"file;cmd|getline line;close(cmd);return(line+0)}BEGIN{FS=OFS=","}{if(!p){print;if($1=="filename")p=1;next}print $1,$2,get($sendpath,$1"*"),get(receivepath,$1".csv")}' read.csv

awk -v sendpath=$sendpath -v receivepath=$receivepath  'function get(dir,file,line){cmd="wc -l "dir"/"file;cmd|getline line;close(cmd);return(line+0)}BEGIN{FS=OFS=","}{if(!p){print;if($1=="filename")p=1;next}print $1,$2,get($sendpath,$1"*"),get(receivepath,$1".csv")}' read.csv




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2