分页: 1 / 1

如何逆推>>喵?

发表于 : 2012-05-06 23:48
millenniumdark

代码: 全选

cat A >> B
這樣子是把A的內容加到B後面,那麼,如何加到b前面呢?

爲了增加逆推的趣味,增加點難度:

一、駱駝、蛇、紅寶石什麼的,不是哪裏都有的,所以不能依靠。(再說這裏是殼殼劇場,讓那些入侵不合適吧?

二、臨時文件什麼的最討厭了!(因爲B可能很胖哦,克隆一個大胖子太不低碳啦~

先拋一小塊磚做例子吧:

代码: 全选

sed -i -e '1rA' -e '1{h;d}' -e '2{x;G}' B

Re: 如何逆推>>喵?

发表于 : 2012-05-06 23:55
枫叶饭团
这种情况果然只有用编辑器 了

Re: 如何逆推>>喵?

发表于 : 2012-05-07 0:20
lilydjwg
感觉做不到。

Re: 如何逆推>>喵?

发表于 : 2012-05-07 0:24
millenniumdark
枫叶饭团 写了:这种情况果然只有用编辑器 了
不一定哦。awk應該也可以吧。甚至在Bash的加持下,即使僅憑小貓的力量,也可以做到:

代码: 全选

cat A <(cat B) > B

Re: 如何逆推>>喵?

发表于 : 2012-05-07 0:52
lilydjwg
millenniumdark 写了:
枫叶饭团 写了:这种情况果然只有用编辑器 了
不一定哦。awk應該也可以吧。甚至在Bash的加持下,即使僅憑小貓的力量,也可以做到:

代码: 全选

cat A <(cat B) > B
不行的。

这样和使用临时文件有区别么?

Re: 如何逆推>>喵?

发表于 : 2012-05-07 9:41
link_01
sed的方法也是复制整个B文件吧?虽然看起来只是修改了开头的,增加了A的内容。

Re: 如何逆推>>喵?

发表于 : 2012-05-07 9:44
eexpress
这学古文的嘿嘿,果然说话不懂。

Re: 如何逆推>>喵?

发表于 : 2012-05-07 12:32
jadeity
那就克隆瘦子A,然后 cat B >> A

Re: 如何逆推>>喵?

发表于 : 2012-05-07 13:12
aerofox
可以用 dd

Re: 如何逆推>>喵?

发表于 : 2012-05-07 16:48
millenniumdark
lilydjwg 写了:
millenniumdark 写了:
枫叶饭团 写了:这种情况果然只有用编辑器 了
不一定哦。awk應該也可以吧。甚至在Bash的加持下,即使僅憑小貓的力量,也可以做到:

代码: 全选

cat A <(cat B) > B
不行的。

这样和使用临时文件有区别么?
呃,乃太誠實了!

Re: 如何逆推>>喵?

发表于 : 2012-05-07 17:12
millenniumdark
link_01 写了:sed的方法也是复制整个B文件吧?虽然看起来只是修改了开头的,增加了A的内容。
sed是流編輯器,猜想是只讀開始的部分的吧? (寫入修改的時候是怎麼樣就不太清楚了,是不是還是要把整個文件重寫一遍?似乎和文件系統有關?)

Re: 如何逆推>>喵?

发表于 : 2012-05-07 17:26
millenniumdark
jadeity 写了:那就克隆瘦子A,然后 cat B >> A
是這樣吧?

代码: 全选

cp A A.orig
cat B >> A
mv A B
mv A.orig A

代码: 全选

cat B >> A
這步還是要把整個B往磁盤寫一遍,而且在mv A B之前,磁盤裏有兩份B的內容,無論是從性能還是空間佔用的角度都不上算。

Re: 如何逆推>>喵?

发表于 : 2012-05-07 21:57
jadeity
rename