Chinaunix

标题: 请教如何在行首包含关键词的指定行添加一列,并且修改这一列的某个字符 [打印本页]

作者: jiawei2426    时间: 2022-01-28 10:54
标题: 请教如何在行首包含关键词的指定行添加一列,并且修改这一列的某个字符
请教各位大神,如何将源文件中M开头的行的第5列复制到第六列,并且把第六列的w=替换为wf=,结果如目标文件所示。非常感谢。
源文件如下:
ddd
M1 a1 b1 l=1 w=1
hhah
M2 a2 b2 l=2 w=2
111
M3 a3 b3 l=3 w=3

目标文件如下:

ddd
M1 a1 b1 l=1 w=1 wf=1
hhah
M2 a2 b2 l=2 w=2 wf=2
111
M3 a3 b3 l=3 w=3 wf=3


作者: a5love3n    时间: 2022-01-28 15:27
  1. awk '$1~/^M/{printf $0" ";sub(/w/,"wf",$5);print $5;next}1'  file
复制代码

作者: wh7211    时间: 2022-06-09 15:48
回复 1# jiawei2426


  1. cat 1
  2. ddd
  3. M1 a1 b1 l=1 w=1
  4. hhah
  5. M2 a2 b2 l=2 w=2
  6. 111
  7. M3 a3 b3 l=3 w=3

  8. awk '/^M/{$6=gensub("w","wf","1",$5)}1' 1
  9. ddd
  10. M1 a1 b1 l=1 w=1 wf=1
  11. hhah
  12. M2 a2 b2 l=2 w=2 wf=2
  13. 111
  14. M3 a3 b3 l=3 w=3 wf=3
复制代码

作者: ll251    时间: 2022-07-01 10:58
sed -r '/^M/{s/w(=.)/& wf\1/}' 1
sed -r '/^M/{s/w(=.)/\0 wf\1/}' 1




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