Удалить блоки кода в файле Markdown с помощью команды SED - PullRequest
0 голосов
/ 20 мая 2019

У меня есть статья, которая является файлом документа уценки (*.md).У него есть кодовые ограждения, как показано ниже

```
My code fence
```

Я использую инструмент автоматической проверки орфографии для проверки правописания в моем документе, вызываемом скриптом.Можно ли убрать блок кода ограждения, прежде чем дать ввод инструмент проверки орфографии.Возможно ли использовать команду SED в Unix.

Запросить помощь всех ветеранов.

Редактирование для большей наглядности.Ниже приведен мой сценарий:

#!/bin/bash
TEXT_CONTENT=`cat $(echo python_tips.md | sed -E ':a;N;$!ba;s/\n/ /g')`
TEXT_CONTENT=`echo "$TEXT_CONTENT" | sed -E 's/\{:([^\}]+)\}//g'`
TEXT_CONTENT=`echo "$TEXT_CONTENT" | sed -E 's/<([^<]+)>//g'`
TEXT_CONTENT=`echo "$TEXT_CONTENT" | sed -E 's/http(s)?:\/\/([^ ]+)//g'`
TEXT_CONTENT=`echo "$TEXT_CONTENT" | sed  -n '/```/,/```/ !p'`
echo $TEXT_CONTENT

Я получаю приведенную ниже ошибку при выполнении команды:

./new_script.sh: command substitution: line 6: unexpected EOF while looking for matching `''
./new_script.sh: command substitution: line 7: syntax error: unexpected end of file
./new_script.sh: command substitution: line 6: unexpected EOF while looking for matching `''
./new_script.sh: command substitution: line 7: syntax error: unexpected end of file

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Введите:

$ cat input.md
Indent every line of the block by at least 4 spaces.

This is a normal paragraph:

    This is a code block.
    With multiple lines.

Alternatively, you can use 3 backtick quote marks ``` before and after the block, like this:

```
This is a code block
```

however, this ``` sample ``` is not a code block.

To add syntax highlighting to a code block, add the name of the language immediately
after the backticks: 

```javascript
var oldUnload = window.onbeforeunload;
window.onbeforeunload = function() {
    saveCoverage();
    if (oldUnload) {
        return oldUnload.apply(this, arguments);
    }
};
```

CMD:

sed '/^```/,/^```/d' input.md

Выход:

$ sed '/^```/,/^```/d' input.md
Indent every line of the block by at least 4 spaces.

This is a normal paragraph:

    This is a code block.
    With multiple lines.

Alternatively, you can use 3 backtick quote marks ``` before and after the block, like this:


however, this ``` sample ``` is not a code block.

To add syntax highlighting to a code block, add the name of the language immediately
after the backticks: 
1 голос
/ 20 мая 2019

Да, это возможно с использованием диапазона адресов и команды d elete.

sed '/```/,//d' file
...