如何在以下示例中讀取值「5」以發出5份文件打印?從php或shell腳本中讀取打印份數的值
例如..我的輸出與下面的代碼類似。
Order: 101 Guest: Raj Phone: xxx-xxx-xxxx 5 x Bananas 5 x Grapes 5 x Apples
如何讀取上述文件中的值5並使用如下。如果在變量中有5種方法,我可以在lpr命令中使用它。
LPR output.txt的 - #
如何在以下示例中讀取值「5」以發出5份文件打印?從php或shell腳本中讀取打印份數的值
例如..我的輸出與下面的代碼類似。
Order: 101 Guest: Raj Phone: xxx-xxx-xxxx 5 x Bananas 5 x Grapes 5 x Apples
如何讀取上述文件中的值5並使用如下。如果在變量中有5種方法,我可以在lpr命令中使用它。
LPR output.txt的 - #
我會做這樣的事情:
sed -n '/^[0-9]\+ x [A-Za-z]\+/ { s/^\([0-9]\+\) x \([A-Za-z]\+\)/\1 \2/; p }' file |
while read num fruit; do
echo $num $fruit
# do whatever with lpr
done
編輯
如果你想要做的是找到獨特的##如果你有像## x Something
這樣的字符串,你可以使用這個:
sed -n '/^[0-9]\+ x [A-Za-z]\+/ { s/^\([0-9]\+\) x.*/\1/; p }' file | uniq
如果你想捕捉到一個變量,使用方法:
var="$(sed -n '/^[0-9]\+ x [A-Za-z]\+/ { s/^\([0-9]\+\) x.*/\1/; p }' file | uniq)"
這會有所幫助。
egrep '[0-9]+' test | cut -f 1 -d " " | uniq
這假定樣本輸入將始終位於文件的底部。你可能會更好使用'egrep'[0-9] +''而不是尾巴。就像這樣,這也是一個[無用的貓](http://partmaps.org/era/unix/award.html#cat)的例子。你可以直接調用'cut -f 1 -d「」filename'。 – 2012-04-27 11:54:50
進行了更改。謝謝 – ganesshkumar 2012-04-27 11:59:41
它的工作很棒..但是,它多次打印5次。我怎樣才能打印一次? – 2012-04-27 03:37:58
@RajK我很困惑,你想要什麼。你想讓它找到文件中的第一個'5'並打印出來嗎?如果那是爲什麼你不使用數字5?我假定你想要的是找到所有看起來像'## x Something'的行並打印出它找到的數字。如果那不是你想要的,你能澄清你的問題嗎? – 2012-04-27 03:43:06
對此感到抱歉。我列出的輸出是從其他程序生成並存儲在一個文件中。現在從該文件中,我想讀取上面示例中的「x」符號之前的數字,並將其存儲在一個變量中,並與我的shell腳本一起用於lpr。這是否有意義...? – 2012-04-27 03:48:19