中易网

shell 文件插入

答案:2  悬赏:0  
解决时间 2021-02-28 16:29
a.txt test1 kdfj test2 dfsdj test3 dkfjs b.txt h1 b2 c3 现在想把b.txt的内容插入到a,行与行要对应,插入后的效果: h1 test1 kdfj b2 test2 dfsdj c3 test3 dkfjs 求高手指教 补充一问,比如a.txt内容: /etc/ /test/fkjkchinafjsk/kejr fchinadjfi /fjdsi/fjfichinajsfldjdk 我要问的是怎么把china这个词的前后几个字母取出来(包含china),取第一个的china就可以,后面的几个china不能取。比如我要取china的前后各两个字符,结果应该是: jkchinafj 有人知道吗? 还有个条件是第一个china的位置是不固定的, awk "{printf("$s",substr($2,7,15) 这个虽然可以得到jkchinafj,但是不是我想要的,因为这个china的位置不一定就在第2个域,并且位置也不一定就是第7个到第15个字符 bollyone说的方法好像不满足哦,如果文件内容里包含两个以上的china,就 得不到正确的结果了,帮忙再想一下吧,还有你那个\1是什么意思呀? 补充的问题,其实我是想实现这样一个功能: a.txt内容如下: test1 jdchinasf dkkkdj chinadjfk test2 jdfjschinadfjsldfjds kdfjkdfchina test3 djfdkghchina kgjdjgfchinadjf chinadjf ... a.txt文件里有几行,每行都包含至少一个china,现在我想把每行第一个china和china前后各两个字符输出到b.txt 如下: jdchinasf jschinadf ghchina 。。。。 求高手帮忙
最佳答案
1:paste b.txt a.txt > new.txt
2:取china前后各两个字符:cat a.txt | sed 's/.*\(..china..\).*/\1/g'

如果有多个china的话,cat a.txt | sed 's/.*\(..china..\).*/\1/;s/\(.......\)/\1/p' 或者后面再加个你写的管道awk "{printf("$s",substr($2,7,15)

\1表示\( \)直接匹配到的内容,当然这不是最好的方法,你可以再想想其他的实现方式
全部回答
paste b.txt a.txt
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
文其批发部这个地址在什么地方,我要处理点事
两极板间充满云母介质(不留缝隙),那还存在
大家收藏CD的时候为什么那么在意那些册封,贴
侠盗猎车手圣安地列斯手机版紫色的棒棒怎么用
5.1是日本的假期吗?
温州市瓯海区人才交流中心在哪里 电话多少
为什么我电脑装不爱思助手用不了
iphone5s如何退出程序
脆皮鸡拌饭这个地址在什么地方,我要处理点事
这图片有没有美化过?
判断题。(对的打v,错的打X)
罗兰丝汇时尚家纺有限公司这个地址在什么地方
Maybe I am not the best but I will always
苹果ios9.1下一个系统更新什么时候出?
大学生理财有哪些推荐的项目
推荐资讯
沙漠狗下完仔不爱吃食
这个隆扬资本怎样?
济南火车站广场汽车站到菏泽最晚的汽车是几点
求机械战警前三部 不是2014年那部新拍的,是
鹤顶红金鱼4天不有泵(打氧气的东西)会死吗
升级到win10后显卡无法识别,各种驱动安装都
张世甘栗(唐徕市场店)地址在哪,我要去那里办
broadcom nfc驱动程序 有什么用
我刚买了辆鬼火2代助力车跑了500多了为什么现
得象碳晶电热板都匀总代理我想知道这个在什么
美版的HTC one支持联通4g吗?
女朋友不让我去车站送她,这是为什么?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?