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

  免費注冊 查看新帖 |

Chinaunix

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

[其他] sed命令的一個問題 [復(fù)制鏈接]

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-02-26 19:19 |只看該作者 |倒序瀏覽
首先看一下命令:sed 's/.*"data":"\(.*\)",.*/\1/g' 文件
文件內(nèi)容大致如下:{"filename":"/local/iso/hello.txt","filesize":"104857600","data":"aaaaaaaaa==","offset":"0"}
命令的目的就是取出data相應(yīng)字段的值,也就是aaaaaaaaa==
上面這些是不會有問題的,但是如果data相應(yīng)的字段很長,長到有100M左右的時候,上個命令顯示的結(jié)果就是全部都顯示出來了,而不是data的字段內(nèi)容。
在這求助大家,希望大家不吝賜教,謝謝大家了!

論壇徽章:
145
技術(shù)圖書徽章
日期: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技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [報告]
發(fā)表于 2015-02-26 19:32 |只看該作者
回復(fù) 1# zhiwen1002

How about those

$ perl -lane '{print $1 if(m/"data":"(.+?)"/)}' FILE
aaaaaaaaa==

$ grep -oP '(?<="data":")[^"]+' FILE
aaaaaaaaa==

   

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
3 [報告]
發(fā)表于 2015-02-26 19:57 |只看該作者
回復(fù) 2# jason680

非常感謝你的解答,試了grep是可以的解決問題的,再次感謝。
問題解決了但是還是想知道根源,就是為什么我上面的sed不行,100M的文件也不是很大啊。


   

論壇徽章:
145
技術(shù)圖書徽章
日期: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技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [報告]
發(fā)表于 2015-02-26 20:32 |只看該作者
回復(fù) 3# zhiwen1002

$ echo '{"filename":"/local/iso/hello.txt","data":"aaaaaaaaa==","offset":"0","filesize":"104857600"}' | sed 's/.*"data":"\(.*\)",.*/\1/g'
aaaaaaaaa==","offset":"0

$ echo '{"filename":"/local/iso/hello.txt","data":"aaaaaaaaa==","offset":"0","filesize":"104857600"}' | sed 's/.*"data":"\([^"]*\)".*/\1/g'
aaaaaaaaa==

   

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀(jì)念徽章
日期: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科比退役紀(jì)念章
日期:2022-04-24 14:33:24
5 [報告]
發(fā)表于 2015-02-26 20:33 |只看該作者
但是如果data相應(yīng)的字段很長,長到有100M左右的時候

1、整個文件只有一行嗎?
2、如果文件是從Windows系統(tǒng)里面復(fù)制過來的,需要先轉(zhuǎn)換成unix格式:
  1. dos2unix test.txt
復(fù)制代碼

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
6 [報告]
發(fā)表于 2015-02-26 20:48 |只看該作者
回復(fù) 4# jason680

嗯,這個是貪婪的問題,但是這是你修改文件內(nèi)容出現(xiàn)的問題
打印實際上是這樣的
......AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==","offset":"0"}
前面很多A,文件有100M多。即使按照你那樣的[^],最后結(jié)果還是一樣,就是想不明白,grep是可以的。


   

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
7 [報告]
發(fā)表于 2015-02-26 20:48 |只看該作者
回復(fù) 5# Shell_HAT
只有一行,不是windows的文件,里面沒有特殊的字符,都是可視的


   

論壇徽章:
145
技術(shù)圖書徽章
日期: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技術(shù)圖書徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
8 [報告]
發(fā)表于 2015-02-26 21:12 |只看該作者
回復(fù) 6# zhiwen1002

Is it sed version issue?
There is no issue with sed version 4.2.1 on Ubuntu LTS 12.04



$ wc FILE
       1        1 10000070 FILE

$ head -c 80 FILE
{"filename":"/local/iso/hello.txt","data":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

$ tail -c 80 FILE
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==","offset":"0"}

$ sed 's/.*"data":"\(.*\)",.*/\1/g' FILE > NEW

$ wc NEW
       1        1 10000012 NEW

$ head -c 80 NEW
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

$ tail -c 80 NEW
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa==

$ sed --version
GNU sed version 4.2.1
...

論壇徽章:
7
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-09 06:20:00每日論壇發(fā)貼之星
日期:2015-08-09 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-22 06:20:00程序設(shè)計版塊每日發(fā)帖之星
日期:2015-08-27 06:20:00
9 [報告]
發(fā)表于 2015-02-27 10:55 |只看該作者
只有我沒看懂題目嗎?

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
10 [報告]
發(fā)表于 2015-02-28 10:39 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
您需要登錄后才可以回帖 登錄 | 注冊

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