сначала позвольте мне сказать, что я преподавал мне Linux, и я еще не "техник", хорошо осведомленный. Я использую Ubuntu 18.04 и использую Bash создать файлы, которые я могу выполнить. Одна вещь, которую я пытаюсь сделать, является этим. Я люблю ASCII-творчество. Я хочу создать сценарий, который возьмет файл, который я говорю ему (исключая: ./convert moon
) moon
будучи текстовым файлом, содержащим ASCII-творчество. Я хочу заставить сценарий редактировать файл, с которым я говорю ему редактировать каждую строку echo "
вначале, и "
в конце строки, для каждой строки в файле. Наконец поместите #!/bin/bash
оператор как первая строка. Я экспериментировал с различными методами, но, может казаться, не разбираюсь в нем. Если бы это было Windows BAT file I, то не имел бы никаких проблем при выполнении этого. Таким образом, любая справка, которую любой может дать, будет значительно одобрена... заранее спасибо.
Не забудьте заключать специальные символы в кавычки, я записал этот ответ, затрагивающий эту тему.
Это может на самом деле быть сделано с синглом sed
вызов:
<moon sed -e 's/.*/echo "&"/' -e '1s_^_#!/bin/bash\n_' >moon.bash
Это берет moon
как входной файл, первое выражение заменяет каждой строкой с “эхом "исходное содержание строки"”, второй заменяет началом первой строки с хижины, сопровождаемой символом новой строки, и вывод хранится как moon.bash
.
Если Вы регулярно используете его, я рекомендую добавить его как функцию к Вашему ~/.bashrc
файл, например:
ascii_convert(){ <$1 sed -e 's/.*/echo "&"/' -e '1s_^_#!/bin/bash\n_' >$1.bash ;}
(Не забывайте сохранить файл и получить его с . ~/.bashrc
) Таким образом, можно преобразовать любой файл с простым:
ascii_convert moon
$ cat moon
1
2
3
$ ascii_convert moon
$ cat moon.bash
#!/bin/bash
echo "1"
echo "2"
echo "3"