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

Chinaunix

標(biāo)題: 用read可以倒著讀一個(gè)文件嗎? [打印本頁]

作者: nkliyong    時(shí)間: 2003-01-15 11:37
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
用read可以倒著讀一個(gè)文件嗎?
while read -r LINE
do
.....
done < filename
可以順序讀一個(gè)文件.

如果想倒著讀這個(gè)文件,
或者更復(fù)雜一點(diǎn),順序讀到某一行再倒著讀,或者
根據(jù)條件判斷順讀或倒讀,反復(fù)進(jìn)行.
可以嗎,read好象沒這功能?!
什么命令有這功能   
作者: nkliyong    時(shí)間: 2003-01-15 11:42
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
開張了也不提前打聲招呼,害的俺昨夜在舊版本大聲急呼
為什么不讓俺發(fā)帖了.
作者: shanhan    時(shí)間: 2003-01-15 11:54
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
用這個(gè)
while [ -f filename  ];do
statements
done
作者: laoxia    時(shí)間: 2003-01-15 12:01
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
謝了,俺原來都是打倒立看的
作者: laoxia    時(shí)間: 2003-01-15 12:04
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
才發(fā)現(xiàn),沒解決問題啊, 俺想想
作者: laoxia    時(shí)間: 2003-01-15 12:26
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
cat -n filename | sort -r 可以給顛倒過來,不過每行加了行號(hào),還要把行好搞下去
作者: nkliyong    時(shí)間: 2003-01-15 12:32
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
o,laoxia的意思是通過在每行前加行號(hào)的方法
,根據(jù)行號(hào)來控制文件讀取的方向.
作者: nkliyong    時(shí)間: 2003-01-15 12:33
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
這到是一個(gè)方法.
俺來試試
作者: biansj    時(shí)間: 2003-01-15 12:33
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
舊板中紅香已經(jīng)回答了,很不錯(cuò)的。
作者: laoxia    時(shí)間: 2003-01-15 12:41
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
原帖由 "nkliyong" 發(fā)表:
開張了也不提前打聲招呼,害的俺昨夜在舊版本大聲急呼
為什么不讓俺發(fā)帖了.

俺也是,一夜沒睡
作者: tiansgx    時(shí)間: 2003-01-15 12:43
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
偶第一次,使用新版,試試效果
作者: laoxia    時(shí)間: 2003-01-15 12:53
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
俺搜一下,沒看到紅師兄的,看到samboo寫過一個(gè)

sed -e '1!G;h;$!d' yourfile.txt > yourresult.txt
作者: 紅袖添香    時(shí)間: 2003-01-15 12:53
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
(為會(huì)貼不上。!再試一次。。。

原來還真搬家了。  我說怎么人好少~~~  再貼一遍吧,


1.  如果你有 GNU utility 中的工具 tac  (就是 cat 反過來,呵呵),就能做到。

2.  如果沒有上面的 tac,也可以用 perl 完成。

  perl -e 'print reverse <>' file  
  
3.  如果你想對(duì)順序顛來倒去折騰,tac 可能不行了, perl 還得截取怪麻煩的,簡單一點(diǎn)可以用 awk 來完成。

  awk '{line[NR]=$0}END {for (i=NR;i>0;i--) print line}' file

然后,用 line  可以隨便你折騰了。
作者: shanhan    時(shí)間: 2003-01-15 14:11
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
haha  !
樓上的 辦法好阿 !
作者: valentine    時(shí)間: 2003-01-15 14:45
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
紅香回答的不錯(cuò)啊。俺再補(bǔ)充幾句(很羅嗦。

如果要倒著讀,除tac,perl,sed,awk的方法外,還可以用:
pr -tn filename|sort -nr|cut -f2-  
nl -ba filename|sort -nr|cut -f2-  
(前面也提到過排續(xù)的方法)
如果文件不是很大的話,也可以使用:
awk '{x=$0"\n"x}END{print x}'

有的系統(tǒng)(如AIX,solaris)用tail -r 也很方便
作者: nkliyong    時(shí)間: 2003-01-15 17:22
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
斑竹的意思是倒著讀吧,
我的意思是象C一樣讀文件,
可以隨意前進(jìn)或后退地讀.
紅袖的方法可以
但如果在awk中的line
awk外還可以使用嗎?
作者: valentine    時(shí)間: 2003-01-15 17:26
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
&amp;#20351;&amp;#29992;vi&amp;#20063;&amp;#21487;&amp;#20197;&amp;#65306;
vi filename<<!
:%g/^/m0

!
作者: nkliyong    時(shí)間: 2003-01-15 18:30
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
以前精華里有帖子說明怎樣在awk中引用shell中的變量
那么在shell中能引用awk中的變量嗎?
作者: 紅袖添香    時(shí)間: 2003-01-15 20:57
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
原帖由 "nkliyong" 發(fā)表:
以前精華里有帖子說明怎樣在awk中引用shell中的變量
那么在shell中能引用awk中的變量嗎?


可以用。比如這樣 (還是那段代碼,稍作更動(dòng))


  1. eval `awk ''{line[NR]=$0}
  2.      END {
  3.          for(i=NR;i>0i--;) {
  4.              print "var" i "=\042" line[i] "\042"
  5.          }
  6.       }
  7. '' $1`

  8. # test output
  9. for i in 1 2 3 4 5 6 7 8; do
  10.     eval echo $i: ''$var''$i
  11. done
復(fù)制代碼

作者: valentine    時(shí)間: 2003-01-16 08:59
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
原帖由 "nkliyong" 發(fā)表:
以前精華里有帖子說明怎樣在awk中引用shell中的變量
那么在shell中能引用awk中的變量嗎?

理論上講,自然是不能用。
但紅袖就給出了一個(gè)很好的變通方法,你可以把a(bǔ)wk中的變量設(shè)置到shell環(huán)境中來再用啊。
作者: nkliyong    時(shí)間: 2003-01-16 09:13
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
很不錯(cuò),好,very good,俺佩服四了
俺對(duì)你的..猶如滔滔降水連綿不決.

作者: bjgirl    時(shí)間: 2003-06-13 00:56
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
都沒有l(wèi)inux方便!!!
原文:
$cat tmp
abcdefghijklmnopqrstuvwxyza
basdfasf
adfasdf
dfasjfdfasdf
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
行號(hào)顛倒,末行變第一行:
$cat tmp|tac
ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
dfasjfdfasdf
adfasdf
basdfasf
abcdefghijklmnopqrstuvwxyza
每行的字符倒過來讀!:
$cat tmp|rev
azyxwvutsrqponmlkjihgfedcba
fsafdsab
fdsafda
fdsafdfjsafd
9876543210
ZYXWVUTSRQPONMLKJIHGFEDCBA
組合:
$cat tmp|rev|tac
ZYXWVUTSRQPONMLKJIHGFEDCBA
9876543210
fdsafdfjsafd
fdsafda
fsafdsab
azyxwvutsrqponmlkjihgfedcba
$
看來,還是linux好用
作者: funyong    時(shí)間: 2003-06-20 14:38
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
妙哇
作者: YGC    時(shí)間: 2005-06-12 11:19
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
rev filename | tac
全都反過來啦。。
作者: lych    時(shí)間: 2005-06-13 09:45
標(biāo)題: 用read可以倒著讀一個(gè)文件嗎?
看完這個(gè)帖子,有一點(diǎn)看法,說出來大家不要笑話我哈!
總結(jié)一下,幾種方法,無外乎sed ,awk,tail,tac!tac我機(jī)子上沒有,不知道什么樣子,sed的方法是運(yùn)用sed的模式空間和保留空間的方式,個(gè)人認(rèn)為當(dāng)文件比較大的時(shí)候,命令執(zhí)行時(shí)間是否會(huì)過長,甚至是無法運(yùn)行呢?tail的方式比較方便,但是只適合20k一下的文件,所以我個(gè)人認(rèn)為最優(yōu)的選擇是awk的方式!
作者: smzml    時(shí)間: 2006-03-19 18:09
有一個(gè)2G的日志文件,用read讀取,想從最底下一行讀上來。怎么讀呀?
環(huán)境:win下的perl +apache
作者: jcool    時(shí)間: 2007-12-03 13:37
原帖由 YGC 于 2005-6-12 11:19 發(fā)表
rev filename | tac
全都反過來啦。。




這個(gè)倒是很妙^_^
作者: cjaizss    時(shí)間: 2007-12-03 13:48
tac $FILE|read ....




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2