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

  免費注冊 查看新帖 |

Chinaunix

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

[已解決]bash2.05a 內建字符串操作處理路徑的難題 [復制鏈接]

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-02-20 14:07 |只看該作者 |倒序瀏覽
本帖最后由 惟吾無為 于 2011-03-06 19:40 編輯

處理前
str='//mnt/mmc//../mmc/./froms./../test.././file/'
處理后: /mnt/mmc/test../file/
處理要求.
1, 限bash 2.05a內建的字符串操作, 即${}結構的, 實在不行可用sed/awk.
2, 對于./形式, 直接過濾, 這個我用${str//\/.\//\/} #防止把froms.尾部的.給去了
3, 對于../形式, 需連同上層目錄一同過濾, ../的數(shù)量未知, 但我會運行此過濾函數(shù)兩次.以防萬一

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
2 [報告]
發(fā)表于 2011-02-20 14:10 |只看該作者
處理前
str='//mnt/mmc//../mmc/./froms./../test.././file/'
處理后: /mnt/mmc/test../file/
處理要求. ...
惟吾無為 發(fā)表于 2011-02-20 14:07
有什么規(guī)律,能不能再舉一個例子?

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
3 [報告]
發(fā)表于 2011-02-20 14:23 |只看該作者
本帖最后由 惟吾無為 于 2011-02-20 14:34 編輯

處理前
/mnt/../mnt/mmc//test../f//../../test.././file
處理后
/mnt/mmc/test../file

其中..表示上層目錄
所以需要把..前面的目錄去掉一層
但要防止把test..變成了test
路徑中..的出現(xiàn)位置及數(shù)量不確定
且路徑不存在
所以不能cd ;pwd解決

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
4 [報告]
發(fā)表于 2011-02-20 14:31 |只看該作者
本帖最后由 惟吾無為 于 2011-02-20 14:43 編輯

打算利用給定的文件列表, 在終端形成虛擬的目錄結構.
http://club.noahedu.com/thread-113207-1-1.html
你看了上面鏈接就明白了, 我打算用這瀏覽一些邏輯上的目錄結構(由列表提供)

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
5 [報告]
發(fā)表于 2011-02-20 14:34 |只看該作者
本帖最后由 惟吾無為 于 2011-02-20 14:39 編輯

手機發(fā)帖, 發(fā)重了

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
6 [報告]
發(fā)表于 2011-02-24 21:47 |只看該作者
算了, 我加限制去, 不自動除錯了.

論壇徽章:
145
技術圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
7 [報告]
發(fā)表于 2011-02-25 11:18 |只看該作者
本帖最后由 jason680 于 2011-02-25 11:20 編輯
處理前
str='//mnt/mmc//../mmc/./froms./../test.././file/'
處理后: /mnt/mmc/test../file/
處理要求. ...
惟吾無為 發(fā)表于 2011-02-20 14:07
  1. #!/bin/bash
  2. shopt -s extglob
  3. #shopt extglob
  4. str="/mnt/../mnt/mmc//test../f/./././/////../../test.././file"
  5. echo "1: $str"
  6. str=${str//\/+(\/)/\/}
  7. echo "2: $str"
  8. str=${str//\/+(.\/)/\/}
  9. echo "3: $str"
  10. while [ "$str" != "$orgstr" ]
  11. do
  12.   #echo "s1: $str"
  13.   orgstr="$str"
  14.   str=${str//\/+([^\/])\/\.\.\//\/}
  15.   echo "s2: $str"
  16. done
  17. echo "finish: $str"
復制代碼
$ ./short_path
1: /mnt/../mnt/mmc//test../f/./././/////../../test.././file
2: /mnt/../mnt/mmc/test../f/./././../../test.././file
3: /mnt/../mnt/mmc/test../f/../../test../file
s2: /mnt/mmc/test../../test../file
s2: /mnt/mmc/test../file
s2: /mnt/mmc/test../file
finish: /mnt/mmc/test../file

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
8 [報告]
發(fā)表于 2011-02-26 03:59 |只看該作者
回復 7# jason680


   

多謝了.
有關${+()}
的形式能否講解一下, 或者指個方向, 平時還沒見過這種類型的

論壇徽章:
145
技術圖書徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11獅子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龍
日期:2014-01-08 15:26:12技術圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
9 [報告]
發(fā)表于 2011-02-26 14:59 |只看該作者
回復  jason680


   

多謝了.
有關${+()}
的形式能否講解一下, 或者指個方向, 平時還沒見過這種 ...
惟吾無為 發(fā)表于 2011-02-26 03:59


shopt  http://www.gnu.org/software/bash ... l#The-Shopt-Builtin
  ...
  extglob
    If set, the extended pattern matching features described above (see Pattern Matching) are enabled.
  ...

Pattern-Matching
http://www.gnu.org/software/bash ... ml#Pattern-Matching

論壇徽章:
1
巳蛇
日期:2013-10-28 15:55:33
10 [報告]
發(fā)表于 2011-02-27 19:38 |只看該作者
多謝了

還有很多要學...
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP