如何在多部门的单词之间转换空格?

时间:2016-05-25 18:44:24

标签: regex linux sed

如何通过正则表达式从这个文件逐行转换多部分单词之间的空白空间?并用“_”代替?在linux(sed或ex)

Actor

0656.txt W * PUNC PUNC my word
0656.txt W * CONJ CONJ my best word

1 个答案:

答案 0 :(得分:0)

你的问题是否模糊,而且没有严格的目标(一个字的部分)?。

keyword='my'

while read line || [[ -n "$line" ]]; do
    replace=$(echo "$line" | sed -re "s/^.*($keyword)/\1/g" | sed -re "s/ /_/g")
    echo "$line" | sed -re "s/($keyword.*)/$replace/g"
done <"file.txt" >"outfile.txt"

这会将关键字后面的单词之间的空格替换为下划线。然后将其插回到较大的字符串中。