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

  免費(fèi)注冊 查看新帖 |

Chinaunix

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

小腳本:用shell摹擬grep -i  關(guān)閉 [復(fù)制鏈接]

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2005-12-27 01:54 |只看該作者 |倒序?yàn)g覽

  1. /home/lee#cat Grep
  2. #!/bin/bash
  3. #
  4. (($#!=2))||[[ ! -f $2 ]]&&{ echo "Usage:$(basename $0) <patten> filename"; exit 1; }
  5. str=$(echo $1|od -b)
  6. str=${str% *}
  7. str=${str#* }
  8. patten=$(
  9. for i in $str;do
  10.         [[ $i == 14[0-9] ]] && echo -ne "\\0133\\0${i/4/0}\\0$i\\0135" ||\
  11.         echo -ne "\\0133\\0${i/0/4}\\0$i\\0135"
  12. done
  13. )
  14. while read line;do
  15.         [[ $line == *$patten* ]] && echo $line
  16. done<$2
復(fù)制代碼

test
/home/lee#chmod +x Grep
/home/lee#cat file
abcd
aBcD
Abcabc
AbCd
aaaasadfsdf
bbb
ccc

/home/lee#grep -i abcd
/home/lee#grep -i abcd file
abcd
aBcD
AbCd
/home/lee#Grep abcd file
abcd
aBcD
AbCd
/home/lee#

BTW:下午發(fā)的,過于倉促,考慮欠妥,特此請?jiān)?
此腳本可取之處是有效利用了bash的對字符串的操作以及TEST方面的特性

論壇徽章:
0
2 [報告]
發(fā)表于 2005-12-27 15:17 |只看該作者
str=${str% *}
str=${str#* }

這兩句能解釋一下嗎?
我做了測試,但不知道是怎么來的。
dingo@/home/jxlhu> echo abc | od -b
0000000 141 142 143 012
0000004
dingo@/home/jxlhu> str=$(echo abc | od -b)
dingo@/home/jxlhu> str=${str% *}
dingo@/home/jxlhu> echo $str
0000000 141 142 143
dingo@/home/jxlhu> str=${str#* }
dingo@/home/jxlhu> echo $str
141 142 143

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
3 [報告]
發(fā)表于 2005-12-27 15:19 |只看該作者
原帖由 hxl208310 于 2005-12-27 15:17 發(fā)表
str=${str% *}
str=${str#* }

這兩句能解釋一下嗎?
我做了測試,但不知道是怎么來的。
dingo@/home/jxlhu> echo abc | od -b
0000000 141 142 143 012
0000004
dingo@/home/jxlhu> str=$(echo ab ...

這些對string的操控方法,看一看置頂十三問吧

論壇徽章:
0
4 [報告]
發(fā)表于 2005-12-27 16:33 |只看該作者
前面的我搞懂了
那正則表達(dá)式中\(zhòng)\0${i/4/0}是什么意思?
有什么用?

論壇徽章:
0
5 [報告]
發(fā)表于 2005-12-27 16:52 |只看該作者
火哥時間真多,羨慕。。。

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
6 [報告]
發(fā)表于 2005-12-28 11:41 |只看該作者
原帖由 hxl208310 于 2005-12-27 16:33 發(fā)表
前面的我搞懂了
那正則表達(dá)式中\(zhòng)\0${i/4/0}是什么意思?
有什么用?

那不是正則, ${i/4/0}是字符串替換,把4換成0

原帖由 大螞蟻 于 2005-12-27 16:52 發(fā)表
火哥時間真多,羨慕。。。

失業(yè)的人,時間就是富裕

[ 本帖最后由 寂寞烈火 于 2005-12-28 11:42 編輯 ]

論壇徽章:
0
7 [報告]
發(fā)表于 2005-12-28 14:25 |只看該作者
問一下

grep -i "a   bc d" 這樣能實(shí)現(xiàn)么?

論壇徽章:
1
榮譽(yù)會員
日期:2011-11-23 16:44:17
8 [報告]
發(fā)表于 2005-12-28 15:18 |只看該作者
原帖由 ivhb 于 2005-12-28 14:25 發(fā)表
問一下

grep -i "a   bc d" 這樣能實(shí)現(xiàn)么?

sorry,沒有考慮到這個問題
測試了一下,似乎可以
/home/lee#cat file
abc
AbC
abC
abc ABC DE
abC abC dE
abc de
AbC De
/home/lee#Grep 'abc de' file
abc ABC DE
abC abC dE
abc de
AbC De

如果要100%達(dá)到grep的功能,我想也不太現(xiàn)實(shí)吧 ,呵呵,咱們是來摹擬的,就是一個練手的腳本,沒法跟怔怔的grep比

[ 本帖最后由 寂寞烈火 于 2005-12-28 16:29 編輯 ]

論壇徽章:
0
9 [報告]
發(fā)表于 2006-01-03 21:46 |只看該作者
火哥的帖子就是好!

論壇徽章:
0
10 [報告]
發(fā)表于 2006-07-07 16:24 |只看該作者
啊,非常的不錯啊。即涉及到字符串的裁減,也學(xué)到了echo 8進(jìn)制的表示方法。謝謝!
您需要登錄后才可以回帖 登錄 | 注冊

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP