Chinaunix

标题: 追加到文件顶部 [打印本页]

作者: 麒麟才者    时间: 2008-05-15 14:44
标题: 追加到文件顶部
怎么样将管道|前面的输出内容 追加到一个文件的顶部 谢谢!
例如:管道前的输出内容追加到file2的顶部

grep farmer file1|

cat file1

I am a farmer!
I am a student!
I am a worker!

cat file2
I am a student!
I am a worker!

通过管道 追加到顶部 变成
I am a farmer!
I am a student!
I am a worker!
谢谢!
作者: waker    时间: 2008-05-15 14:51
(grep farmer file1;cat file2)|
作者: 麒麟才者    时间: 2008-05-15 15:03
(grep farmer file1;cat file2)|
Invalid null command.

( grep farmer file1 ; cat file2)
I am a farmer!
I am a student!
I am a worker!

我的意思是将管道|前面的输出内容 追加到一个文件的顶部
追加后 cat file2(file2的内容保存成)
I am a farmer!
I am a student!
I am a worker!

[ 本帖最后由 麒麟才者 于 2008-5-15 15:05 编辑 ]
作者: 麒麟才者    时间: 2008-05-15 15:07
能不能通过管道实现呢
我想把管道前面的输出内容 追加到一个文件的顶部
作者: blackold    时间: 2008-05-15 15:10
标题: 回复 #3 麒麟才者 的帖子
搞不懂LZ的意思。在"顶部"也叫“追加“?

请LZ先看置顶贴。

[ 本帖最后由 blackold 于 2008-5-15 15:11 编辑 ]
作者: 麒麟才者    时间: 2008-05-15 15:16
谢谢!其实我的意思是每次grep的东西加到一个文件的前面
">>"是每次在文件的后面添加
作者: blackold    时间: 2008-05-15 15:20
标题: 回复 #6 麒麟才者 的帖子
在前面叫"插入"后面叫“追加"


版主不是给你答案了吗?

最恼火的是明明别人已经给答案了,还在问,都不知道真正要的是什么?

其实不是对提问者恼火,而是因为搞不清到底想要些什么而恼火。

[ 本帖最后由 blackold 于 2008-5-15 15:29 编辑 ]
作者: 寂寞烈火    时间: 2008-05-15 15:22
cat <(grep str file1 ) <(cat file2 ) >file3
作者: 麒麟才者    时间: 2008-05-15 15:35
烈火兄 好象不行
cat <(grep farmer file1 ) <(cat file2 ) >file3
Missing name for redirect.

能不能不要第三个文件直接插入file2顶部改变file2的内容(有点类似>>追加到文件底部)
grep farmer file1|???  file2
作者: prc    时间: 2008-05-15 15:39

  1. v=$(grep farmer file1;cat file2); echo "$v" >file2
复制代码

作者: blackold    时间: 2008-05-15 15:41
标题: 回复 #9 麒麟才者 的帖子
是不是LZ的环境问题?

waker和烈火的答案应该都没有问题啊。

不行的话你用笨方法吧:
grep > file_tmp
cat file_temp file2

[ 本帖最后由 blackold 于 2008-5-15 15:42 编辑 ]
作者: 麒麟才者    时间: 2008-05-15 15:48
echo $SHELL
/bin/tcsh
谢谢各位了 我再研究研究~
作者: 麒麟才者    时间: 2008-05-15 15:56
原帖由 prc 于 2008-5-15 15:39 发表

v=$(grep farmer file1;cat file2); echo "$v" >file2


v=$(grep farmer file1;cat file2); echo "$v" >file2
Illegal variable name.

我就郁闷了 难道我的环境有问题
作者: blackold    时间: 2008-05-15 15:59
标题: 回复 #13 麒麟才者 的帖子
tcsh我没有用过,等高人来解决吧。

楼上的几种方法在bash下执行没有问题。
作者: 麒麟才者    时间: 2008-05-15 16:12
我切换到bash 可以了
v=$(grep farmer file1;cat file2); echo "$v" >file2
cat file2
I am a farmer!
I am a student!
I am a worker!

用sed 为什么不行
v=$(grep farmer file1);sed "1i\"$v"" file2




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2