2017-02-09 5 views
0

У меня есть некоторые большие шаблоны как HTML:Как преобразовать 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

Если этот html предназначен для дальнейшего рендеринга, то строки-строки должны быть заменены на '
' not '\ n' – RomanPerekhrest

+0

Нет рамки, которая нуждается в этом HTML-коде, который он хочет использовать как' \ n 'не
YumYumYum

ответ

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 по restting в 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> 
2

Если вы хотите заменить символ новой строки (возврат каретки) на litteral \n , вы можете использовать awk:

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

Это заменит разделитель выходной записи ORS на литер \n. 1 запускает действие по умолчанию в awk, распечатывает всю запись.

Смежные вопросы