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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
123
最近訪問板塊 發(fā)新帖
樓主: 心若寒江雪
打印 上一主題 下一主題

[文本處理] awk RS分割 [復(fù)制鏈接]

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
21 [報告]
發(fā)表于 2014-09-26 21:24 |只看該作者
學(xué)習(xí)
  1. $ echo |awk -vRS='{\\\\' '{print RS}'
  2. {\\
復(fù)制代碼
首先 -vRS='{\\\\' 會將 {\\存進RS
然后awk又是用正則的眼光看RS,于是{\\被最終翻譯成{\,即awk用{\作為行分割符。

至于3斜杠也可以
  1. $ echo |awk -vRS='{\\\' '{print RS}'
  2. {\\
復(fù)制代碼
確實是這種寫法也可以讓RS得到{\\

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
22 [報告]
發(fā)表于 2014-09-28 11:34 |只看該作者
@blackold回復(fù) 21# cao627


    最頭疼反斜杠的轉(zhuǎn)義了,目前需要轉(zhuǎn)義反斜杠的時候,一律先在環(huán)境里面執(zhí)行一把再寫代碼。。。

   之前就沒注意過,``和$()兩種方式,對于轉(zhuǎn)義的處理是不一樣的=。=
  1. a='c:\tmp'
  2. echo $a|sed 's/\\/&&/g'
  3. c:\\tmp
  4. b=`echo $a|sed 's/\\/&&/g'`;echo $b
  5. sed: -e expression #1, char 8: unterminated `s' command
  6. b=`echo $a|sed 's/\\\\/&&/g'`;echo $b
  7. c:\\tmp
  8. b=$(echo $a|sed 's/\\\\/&&/g');echo $b
  9. c:\tmp
  10. b=$(echo $a|sed 's/\\/&&/g');echo $b
  11. c:\\tmp
復(fù)制代碼

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
23 [報告]
發(fā)表于 2014-09-28 16:33 |只看該作者
學(xué)習(xí)
  1. czj@sun:/tmp$ echo 'a\\b'
  2. a\\b
  3. czj@sun:/tmp$ echo "a\\b"
  4. a\b
  5. czj@sun:/tmp$ x='a\\b'
  6. czj@sun:/tmp$ echo $x
  7. a\\b
  8. czj@sun:/tmp$ y=`echo 'a\\b'`;echo $y
  9. a\b
復(fù)制代碼
可見shell遇到``后,``中的單引號不在具有原有的屏蔽shell對其中特殊字符做轉(zhuǎn)意解釋的功能了。

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
24 [報告]
發(fā)表于 2014-09-28 16:58 |只看該作者
@blackold回復(fù) 23# cao627


    應(yīng)該不是這個原因
  1. a=123;b=`echo '$a'`;echo $b
  2. $a
  3. a=123;b=`echo "$a"`;echo $b
  4. 123
復(fù)制代碼
我覺得是因為反引號和$()的原理不完全一樣
$()是在子進程里面進行處理,然后把結(jié)果展示出來,就像cat文本一樣,輸出的時候是直接打印原值
而反引號畢竟也是引用,在展示輸出的時候,又進行了一次解釋
  1. y=`echo "a\\b"`;echo $y,${#y}
  2. a\b,3
  3. y=`echo 'a\\b'`;echo $y,${#y}
  4. a\b,3
  5. y=`echo a\\b`;echo $y,${#y}
  6. ab,2
  7. y=$(echo "a\\b");echo $y,${#y}
  8. a\b,3
  9. y=$(echo 'a\\b');echo $y,${#y}
  10. a\\b,4
  11. y=$(echo a\\b);echo $y,${#y}
  12. a\b,3
復(fù)制代碼

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
25 [報告]
發(fā)表于 2014-09-28 17:20 |只看該作者
回復(fù) 19# blackold


   
awk 'BEGIN{RS="...";}

寫法就必須寫夠,一個也不能少。
  1. echo '123\\bc\\d'|awk 'BEGIN{FS="\\\\"}{print NF}'
  2. 5
  3. echo '123\\bc\\d'|awk 'BEGIN{FS="\\\\\\\\"}{print NF}'
  4. 3
  5. echo '123\\bc\\d'|awk 'BEGIN{FS="\\\\\\"}{print NF}'
  6. 1
復(fù)制代碼
黑哥,如果是用了6個反斜杠,這個會被轉(zhuǎn)義成什么呢?為啥6個的時候NF=1?

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
26 [報告]
發(fā)表于 2014-09-28 19:10 |只看該作者
你6 個反斜的話FS的到的是\\\
然后awk解釋\\\
解釋的結(jié)果即不是\    ,也不是 \\

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯(lián)賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯(lián)賽之天津
日期:2016-12-20 14:01:23
27 [報告]
發(fā)表于 2014-09-28 19:17 |只看該作者
在展示輸出的時候,又進行了一次解釋
  1. czj@sun:/tmp$ echo "a\\b"
  2. a\b
  3. czj@sun:/tmp$ echo a\\b
  4. a\b
  5. czj@sun:/tmp$y=`echo "a\\b"`;echo $y,${#y}
  6. a\b,3
  7. czj@sun:/tmp$ y=`echo a\\b`;echo $y,${#y}
  8. ab,2
復(fù)制代碼
既然 echo "a\\b" echo a\\b的結(jié)果相同
那么,`echo "a\\b"``echo a\\b` 展示的結(jié)果也是一樣的,一樣的結(jié)果shell再次解釋,賦值給y,y得到的結(jié)果也應(yīng)該一樣。但為什么么不同呢?

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
28 [報告]
發(fā)表于 2014-09-28 22:28 |只看該作者
回復(fù) 25# bulletmarquis


    經(jīng)過 awk 字符串解釋后,F(xiàn)S的值為 '\\\', 這應(yīng)該是個不規(guī)范的正則——有一個"落單"的尾\. 尾\會匹配什么? 沒有定義。
對于 grep 會出錯, awk 的話,我的環(huán)境會匹配null字符。

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
29 [報告]
發(fā)表于 2014-09-29 08:48 |只看該作者
回復(fù) 27# cao627


    囧了個囧,這個問題真是回答不上來。。。

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
30 [報告]
發(fā)表于 2014-09-29 08:48 |只看該作者
回復(fù) 28# blackold


    黑哥給力~~~
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(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