如何通过正则表达式从这个文件逐行转换多部分单词之间的空白空间?并用“_”代替?在linux(sed或ex)
这
Actor
到
0656.txt W * PUNC PUNC my word
0656.txt W * CONJ CONJ my best word
答案 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"
这会将关键字后面的单词之间的空格替换为下划线。然后将其插回到较大的字符串中。