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

Chinaunix

標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行! [打印本頁]

作者: lljj    時(shí)間: 2002-10-16 09:16
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
請(qǐng)教!怎么把一個(gè)文本的一列,換成一行?
在vi中能做嗎?
作者: mirnshi    時(shí)間: 2002-10-16 09:23
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
sed可以做到
作者: lljj    時(shí)間: 2002-10-16 09:31
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
是嗎?請(qǐng)教sed怎么實(shí)現(xiàn)呢?謝謝!
作者: lljj    時(shí)間: 2002-10-16 09:39
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
也就是一個(gè)文件是這樣的:
oplasttr
dsprjord
accontsup106
alprjinfo
holiday
把它替換成oplasttr dsprjord accontsup106 alprjinfo holiday

作者: superhoo    時(shí)間: 2002-10-16 09:51
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
cat test.txt | awk '{printf "%s ",$0}'
作者: valentine    時(shí)間: 2002-10-16 09:53
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
[這個(gè)貼子最后由valentine在 2002/10/16 09:54am 編輯]

A=`cat file`&#59;echo $A

作者: lljj    時(shí)間: 2002-10-16 10:01
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
valentine 你好厲害。【瞎!能告訴我為什么可以這樣?是echo的功能?
作者: littletiger    時(shí)間: 2002-10-16 15:51
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
我靠   偶像 ~~~~~~~~~~~~~~~~~
作者: valentine    時(shí)間: 2002-10-16 15:59
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
下面引用由lljj2002/10/16 10:01am 發(fā)表的內(nèi)容:
valentine 你好厲害!鞠躬!能告訴我為什么可以這樣?是echo的功能?
You just flattered me to the sky!
這是shell在把命令處理結(jié)果賦給變量時(shí)的一種特性.也就是``的功能.

作者: goodboy    時(shí)間: 2002-10-17 11:11
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
斑竹的厲害早就家喻戶曉;斑竹的名聲如雷貫耳!
作者: hwhcom    時(shí)間: 2002-10-17 11:23
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
[這個(gè)貼子最后由hwhcom在 2002/10/17 11:25am 編輯]

如果文件有多個(gè)域,把每個(gè)域的列換成行,該如何???
file a
a aa
b bb
c cc
轉(zhuǎn)換為
a b c
aa bb cc
斑竹的方法好像就不行

作者: goodboy    時(shí)間: 2002-10-17 11:25
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
[這個(gè)貼子最后由goodboy在 2002/10/17 11:58am 編輯]

這樣的話就可以按照superhoo的方法來做,一列列的處理,然后追加到一個(gè)文件中就ok了。
cat fileA | awk '{printf "%s ",$1}' >> fileB
echo >> fileB
cat fileA | awk '{printf "%s ",$2}' >> fileB

作者: hwhcom    時(shí)間: 2002-10-17 11:29
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
用cut也可以
A1=`cat jj|cut -d" " -f1`
A2=`cat jj|cut -d" " -f2`
作者: goodboy    時(shí)間: 2002-10-17 12:03
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
[這個(gè)貼子最后由goodboy在 2002/10/17 12:11pm 編輯]

斑竹的方法是一列,我的方法是兩列,要是有不確定列怎么辦?
比如文件:fileA(都是左對(duì)齊)
a   b   c    d
aa  bb
e
ddd f   cc
要是象finger結(jié)果文件,簡(jiǎn)化一下,怎么處理了?
# finger
LoginName                     Tty    Idle        Where
client                        *p1                10.1.1.101
client                        *p0                10.1.1.97
client                        *p2                10.1.1.98
client                        *p6                10.1.1.171
client                        *p7      27        10.1.1.157
client                        *p8       4        10.1.1.74

作者: microroad    時(shí)間: 2002-10-20 23:04
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
思路應(yīng)該是先對(duì)文件掃描,得出最多有幾個(gè)域,以此作為循環(huán)次數(shù),再分別對(duì)每列讀取。
作者: microroad    時(shí)間: 2002-10-21 00:19
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
[這個(gè)貼子最后由microroad在 2002/10/21 00:32am 編輯]
下面引用由hwhcom2002/10/17 11:23am 發(fā)表的內(nèi)容:
如果文件有多個(gè)域,把每個(gè)域的列換成行,該如何???
file a
a aa
b bb
...

把每個(gè)域的列換成行,且每行的域數(shù)不確定用shell實(shí)現(xiàn)如下:
有點(diǎn)繁,期待簡(jiǎn)化版!
#!/bin/sh
max=0
while read v
do
nf=`echo "$v"|awk '{print NF}'`
if [ $nf -gt $max ]
then
max=$nf
fi
done <fileA

c=1
while [ $c -le $max ]
do
cat fileA |awk '{printf &quot;%s \t&quot;,$&quot;'$c'&quot;} END{printf &quot;\n&quot;}' >>fileB
c=`expr $c + 1`
done
作者: skydown    時(shí)間: 2002-10-21 14:31
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
請(qǐng)教 microroad 我試了以下你的程序,發(fā)現(xiàn)一個(gè)問題,就是那個(gè)max參數(shù),
它在while循環(huán)里被賦值,但是一出循環(huán)它的值又變成了0,這是怎么回事??
這與版本有關(guān)嗎??
作者: microroad    時(shí)間: 2002-10-21 23:33
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
不應(yīng)該的。我在shell下都測(cè)試過的。
你可在第一個(gè)循環(huán)中加上echo $nf和echo $max,在用sh -x rowtoline.sh (假定什么的shell script叫rowtoline.sh)調(diào)試,看看原因在哪。
作者: skydown    時(shí)間: 2002-10-22 09:25
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
繼續(xù)請(qǐng)教 microroad
我的shell程序是:
#!/bin/sh

TMP=bbb.txt
FILE=aaa.txt
max=0

while read TXT
do
  nf=`echo $TXT | awk '{print NF}'`

  if [ $nf -gt $max ]
  then
  max=$nf
  fi
done<$FILE

echo $max

LNo=1
while [ $LNo -le $max ]
do
  awk '{printf &quot;%s \t&quot;,$&quot;'$LNo'&quot;} END{printf &quot;\n&quot;}' $FILE >> $TMP
  LNo=$LNo+1
done

文本文件aaa.txt是:
1 aa
2 bb
3 cc eee
4 dd
5 cccccccccc
6 uuuuuuuu

-x的結(jié)果是:
TMP=bbb.txt
FILE=aaa.txt
max=0
+ read TXT
+ + awkecho  {print NF}1
aa
nf=2
+ [ 2 -gt 0 ]
max=2
+ read TXT
+ + awkecho  {print NF}2
bb
nf=2
+ [ 2 -gt 2 ]
+ read TXT
+ + awkecho  {print NF}3
cc eee
nf=3
+ [ 3 -gt 2 ]
max=3   -------------------------------------此處的max被賦值為3
+ read TXT
+ + awkecho  {print NF}4
dd
nf=2
+ [ 2 -gt 3 ]
+ read TXT
+ + awkecho  {print NF}5
cccccccccc
nf=2
+ [ 2 -gt 3 ]
+ read TXT
+ + awkecho  {print NF}6
uuuuuuuu
nf=2
+ [ 2 -gt 3 ]
+ read TXT
+ echo 0
0   ----------------------------此處的max又變成了0
LNo=1
+ [ 1 -le 0 ]


請(qǐng)幫忙看一下,謝謝。
(注:系統(tǒng)為SCO UnixWare 7.0.1)

作者: 山地獾    時(shí)間: 2002-10-22 17:08
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
to skydown :看看下面鏈接指向的貼子吧
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=11&amp;topic=112
作者: microroad    時(shí)間: 2002-10-22 23:30
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
對(duì),你應(yīng)該是遇到了樓上所說的陷阱。但這在我這里(irix,shell)是沒有樓上帖子所說的陷阱的,幸運(yùn)的讓我奇怪!
另外,你的aaa.txt若不包括第一列的數(shù)字,它的最大域數(shù)應(yīng)該只是2,還有第二個(gè)while循環(huán)中LNo=$LNo+1應(yīng)該是LNo=`exor $LNo+1`吧。

作者: yoof    時(shí)間: 2003-08-17 01:07
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
這是shell在把命令處理結(jié)果賦給變量時(shí)的一種特性.也就是``的功能.

``是什么功能呢 誰能解釋一下>?
作者: admirer    時(shí)間: 2003-08-29 09:25
標(biāo)題: 請(qǐng)教!怎么把一個(gè)文本的一列,換成一行!
來一個(gè)通用的:
  1. awk '{for(i=1;i<=NF;printf"%s ",$i++)}'
復(fù)制代碼





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