正则表达式 - 匹配单词并替换之前的内容

时间:2013-08-06 21:26:35

标签: regex bash sed awk match

我有几行文件:

<2-10 digits> ; word

我想用其他内容替换该单词之前的所有数字。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

 sed -i -e 's/.*word/something;word/g' <filename>

循环遍历目录中的多个文件。我假设.txt文件作为文件扩展名:

for i in `\ls -1 *.txt`
  do
    sed -i -e 's/.*word/something;word/g' $i
done

注意:sed -i将以交互方式修改文件。因此,测试没有-i选项的命令来检查这是你想要的,然后去找它...

答案 1 :(得分:1)

更新: sed示例:

s="999 abc 1234 ; word 567"
echo $s | sed 's/^\(.* \)[0-9][0-9]*\( ; word.*\)$/\1something\2/g'

<强>输出:

999 abc something ; word 567