亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標題:
請高手解答一個文件內容刪除的問題
[打印本頁]
作者:
ludio333
時間:
2011-09-03 20:55
標題:
請高手解答一個文件內容刪除的問題
現(xiàn)在有個文件
假設內容是
abcd id=1 defg
bda id=2 dfg
。。。
ert id=65535 dvdf
其中每行有一個id是唯一的
順序也是從1-65535但每行除了id其他內容沒有規(guī)律
現(xiàn)在需要把文件內容的
id=32768至id=65535行的數據刪除不能留下空行
請問有什么效率高一點的辦法嗎
?
我試過用把32768-65535放在一個數組
然后用grep
但是效率太差了 感覺比while文件再循環(huán)32768-65535做刪除慢
作者:
zhlong8
時間:
2011-09-03 23:12
perl -pe "exit if $. == 32768" file
作者:
Kitaisky
時間:
2011-09-04 01:15
perl -i.bak -ne 'print unless ($.==32768..65535)' file
作者:
RE_HASH
時間:
2011-09-04 02:04
while (<>)
{
$I ++;
last if ($I >32767);
print;
}
Linux的話還可以
head -32767 a.txt > b.txt
作者:
ludio333
時間:
2011-09-05 12:12
回復
2#
zhlong8
$.不是行號么。。。
這文件不包含id的行數是不固定的
我只是寫一個子程序
傳遞進去文件名,要刪除的id范圍
現(xiàn)在的想法是把含id的行全部hash
然后按key裝入數組,再與要刪除范圍的數組使用Array:
iff
找到deleted的數組;
但是不知道效率怎么樣
等忙完手頭的事情我在實驗一下
作者:
yx07004212
時間:
2011-09-05 17:00
sed -i '/id=32768/,/id=65535/d' infile
復制代碼
回復
1#
ludio333
作者:
perlnewbie
時間:
2011-09-05 18:57
perl -ne "print unless /id=32768/../id=65535/"
復制代碼
作者:
ludio333
時間:
2011-09-06 11:46
回復
7#
perlnewbie
這個能用???
我測試了一下不行啊
作者:
Kitaisky
時間:
2011-09-06 12:09
回復 perlnewbie
這個能用???
我測試了一下不行啊
ludio333 發(fā)表于 2011-09-06 11:46
測試過啦,一點問題沒有呀~~
難道你的 Perl 版本太低??
>5.10
作者:
freflying
時間:
2011-09-11 20:26
給一段比較笨的代碼:
while (<>) {
@array = split;
$id = (split "=",$array[1])[1];
if ( $id >= 32768 ) {
if ( $id <= 65535) {
next;
}
}
print;
}
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2