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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2336 | 回復: 4
打印 上一主題 下一主題

請各位幫忙看看如何減少這段腳本中的臨時文件,謝謝 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-10-01 23:15 |只看該作者 |倒序瀏覽
本帖最后由 sinojelly 于 2011-10-02 00:57 編輯

這段腳本就是取兩個.c文件的新舊對比,把新增、修改的行的范圍轉換為某種形式的字符串。

里面用到了兩個臨時文件,看著比較難看,估計也影響性能,請各位幫忙優(yōu)化下這段代碼。謝謝!
  1. TMPDIR=`pwd`

  2. SRCFILE=new.c
  3. BASEFILE=old.c

  4. # 指定diff輸出的格式,有差異的組,輸出起始行號和行數(shù),后面的換行使得輸出結果也是一個組的信息一行
  5. diff --changed-group-format='%dF %dN
  6. ' --unchanged-group-format='' $BASEFILE $SRCFILE > $TMPDIR/diff.txt 2>/dev/null

  7. # awk里面的$1-1表達式會被計算
  8. awk '{print " line > " $1-1 " and line < " $1+$2 }' $TMPDIR/diff.txt > $TMPDIR/diff-awk.txt

  9. FILTER="false"

  10. while read LINE
  11. do
  12.   FILTER+=" or $LINE"
  13. done < $TMPDIR/diff-awk.txt

  14. echo $FILTER
復制代碼
我的old.c和new.c以及shell腳本參見附件。
no-temp-file.rar (751 Bytes, 下載次數(shù): 18)

運行結果如下:
  1. jelly@jelly-ubuntu:~/test/shell/no-temp-file$ ./no-temp-file.sh
  2. false or line &gt; 3 and line &lt; 6 or line &gt; 6 and line &lt; 8
復制代碼

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀念章
日期:2022-04-24 14:33:24
2 [報告]
發(fā)表于 2011-10-02 00:23 |只看該作者
能否把old.c和new.c以及比較的結果貼出來當例子看看?

論壇徽章:
0
3 [報告]
發(fā)表于 2011-10-02 00:58 |只看該作者
回復 2# Shell_HAT

謝謝,我已經(jīng)補充:)

論壇徽章:
0
4 [報告]
發(fā)表于 2011-10-02 09:03 |只看該作者
回復 1# sinojelly
  1. #!/bin/bash
  2. SRCFILE=new.c
  3. BASEFILE=old.c
  4. FILTER="false"

  5. diff --changed-group-format='%dF %dN
  6. ' --unchanged-group-format='' $BASEFILE $SRCFILE | awk -v f="$FILTER" 'BEGIN{printf f}{printf " or line > "$1-1" and line < "$1+$2}END{print ""}'
復制代碼

論壇徽章:
0
5 [報告]
發(fā)表于 2011-10-02 13:31 |只看該作者
回復 4# ywlscpl


    非常感謝,學懂了:)
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP