shell 文件插入
答案:2 悬赏:0
解决时间 2021-02-28 16:29
- 提问者网友:樱花树下最美的约定
- 2021-02-28 00:44
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
。。。。
求高手帮忙
最佳答案
- 二级知识专家网友:伤口狠精致
- 2021-02-28 02:01
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表示\( \)直接匹配到的内容,当然这不是最好的方法,你可以再想想其他的实现方式
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表示\( \)直接匹配到的内容,当然这不是最好的方法,你可以再想想其他的实现方式
全部回答
- 1楼网友:统治我的世界
- 2021-02-28 03:18
paste b.txt a.txt
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |