自动编辑文本文件

自动编辑文本文件

首先,我要说的是,我一直在自学 Linux,但我还不是“技术”专家。我正在使用 Ubuntu 18.04,发现自己使用 BASH 来创建可以运行的文件。我想做的一件事就是这个。我喜欢 ASCII 艺术。我想创建一个脚本,将我告诉它的文件(例如:)./convert moon作为moon包含 ASCII 艺术的文本文件。我想让脚本编辑我告诉它在文件中的每一行echo "开头和"结尾编辑每一行的文件。最后将语句#!/bin/bash作为第一行。我一直在尝试不同的方法,但似乎做不到。如果这是一个 Windows BAT 文件,我这样做不会有问题。所以任何人能提供的帮助都将受到热烈欢迎...提前感谢。

答案1

记得引用特殊字符,我写的这个答案涵盖该主题。

实际上只需一个调用即可完成sed

<moon sed -e 's/.*/echo "&"/' -e '1s_^_#!/bin/bash\n_' >moon.bash

作为moon输入文件,第一个表达式用“echo”替换每一行原行内容"”,第二个用 shebang 后跟换行符替换第一行的开头,并将输出存储为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"

相关内容