(我将使用 _ 代替 BLANK 和 \n 代替换行符来更好地描述这种情况:)
如果我执行
str_text=`vilistextum -u -p - - <<< "$str_html"`;
printf "$str_text"
前哨是这样的:
THISISAWord \n_ \n___ \n_ 另一个词 \n_ ... \n__ 另一个词 \n \n \n__ \n_
如何从变量中的字符串中替换连续的\n
\n
和\n \n
只有一个?\n
我想将连续的 NEWLINES 压缩为一个。我想得到的是这样的:
THISISAWord
\n
ANOTHERWORD
\n
ANOTHERWORD
我尝试了类似的东西
str_text=`vilistextum -u -p - - <<< "$str_html" | sed 's/\n//g'`;
但是 sed 并没有像我想象的那样工作。
==== 解决方案 ====
如果您想将高于 HTML 3.2 的内容转换为文本而不保存在文件中(女巫会杀死性能),请使用以下内容
str_text=$(vilistextum - - <<< "$str_html");
str_text=$(awk 'NF{print $0}' ORS='\n' <<< "$str_text");
str_text=$(sed 's/\\n//g' <<< "$str_text" );
非常感谢。