如何将html转换为一个行字符串?

时间:2017-02-09 08:14:49

标签: php linux bash

我有一些大模板作为html:

<% /*   
  This is basically all the markup and interface
/* %>
<div id="test" class="test-right"></div>
  <div id="test" class="test-right"></div>

我需要将其作为一个行字符串,例如:

<% /*\n  This is basically all the markup and interface\n*/ %>\n<div id=\"test\" class=\"test-right\"></div>\n   <div id=\"test\" class=\"test-right\"></div>

你怎么能这样做?

original_string='test this id="one" test this id="two"'
string_to_replace_Suzi_with=\"
result_string="${original_string/"/$string_to_replace_Suzi_with}"

2 个答案:

答案 0 :(得分:2)

如果您想要通过文字\n替换换行符(回车),则可以使用awk

awk -v ORS='\\n' 1 file

这会将输出记录分隔符ORS替换为litteral \n1触发awk中的默认操作,打印整个记录。

答案 1 :(得分:1)

如果您正在寻找纯bash方法,可以在命令行中一次或在脚本中运行它们。

# Store the contents of the file into a variable
fileContents="$(<file)"

# Create a temporary string using 'GNU mktemp'
tempfile="$(mktemp)"

# Parameter substitution syntax to replace the new-line character by
# empty string and store it in the file identified by the temporary
# name
printf "%s\n" "${fileContents//$'\n'//}" > "$tempfile"

# Revert the temp file to original file
mv "$tempfile" file

但考虑到bash对于这个简单的任务来说速度较慢,请使用AwkORSnew-line停留到empty字符串,

awk -v ORS="" 1 file
<% /*     This is basically all the markup and interface/* %><div id="test" class="test-right"></div>  <div id="test" class="test-right"></div>