我有一些大模板作为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}"
答案 0 :(得分:2)
如果您想要通过文字\n
替换换行符(回车),则可以使用awk
:
awk -v ORS='\\n' 1 file
这会将输出记录分隔符ORS
替换为litteral \n
。
1
触发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
对于这个简单的任务来说速度较慢,请使用Awk
将ORS
从new-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>