2014-03-31 118 views
0

我使用的是awk命令:子在awk命令

df -Pk | grep /var/prod/data | awk '{q=sprintf("%c", 39); print "INSERT INTO entity_trend(entity_name,entity_type,run_date,count) VALUES (\47DISKSPACE\47,\47SPACE\47,SYSDATE,"$5");";}' > cmd.sql 

所以,cmd.sql的內容將是:

INSERT INTO entity_trend(entity_name,entity_type,run_date,count) VALUES ('DISKSPACE','SPACE',SYSDATE,**52%**); 

相反,我想:

INSERT INTO entity_trend(entity_name,entity_type,run_date,count) VALUES ('DISKSPACE','SPACE',SYSDATE,**52**); 

我應該如何形成子串命令?

回答

1

添加+0擺脫%的:$5+0

awk '{q=sprintf("%c", 39); print "INSERT... SYSDATE,"$5+0");";}' > cmd.sql 
                 ^^ 

看到一個例子:

$ echo "55%" | awk '{print $0}' 
55% 
$ echo "55%" | awk '{print $0+0}' 
55 
+0

謝謝!有用!!請解釋語法 – user1097217

+1

嗯,這只是一個事實,做一個算術運算可以讓'awk'''將字符串轉換爲一個數字,這樣'%'就會被去掉。 – fedorqui

+0

另外,如果您的問題得到解決,隨時接受答案:) – fedorqui