使用sed将*放在某些行的前面

时间:2014-12-25 20:33:52

标签: regex linux sed

我有一个不同行的文件;我试图将*放在包含关键字' VDD'的行前面。我知道我可以使用sed*插入到行sed 's/^/*/'的开头,但我有多行包含单词VDD。如何首先找到这些行然后使用sed插入?

示例文件:

VDD 123 123
123 VDD 123
VSS 22 22 
VDD 123 123

基本上我希望上面的文件成为这个

*VDD 123 123
*123 VDD 123
VSS 22 22 
*VDD 123 123

4 个答案:

答案 0 :(得分:4)

尝试这样做:

sed '/VDD/s/^/*/' file

答案 1 :(得分:2)

awk '$0=/VDD/?"*"$0:$0'
  • 如果行包含VDD,则前缀*
  • 其他只是按原样打印行

答案 2 :(得分:1)

试试这个:

awk '/VDD/ {$0="*"$0}1' file

答案 3 :(得分:0)

这也可以起作用

sed '/VDD/s/^./*&/' my_file

找到VDD的所有行。取这些行中的第一个字符并在其后面添加*