场景 | 文件内容排序
sort
反向排序:rev | sort | rev
sorting – bash sort from the end of string – Super User
场景 | 逐行处理文件内容
linux – Looping through the content of a file in Bash – Stack Overflow
cat peptides.txt | while read line do # do something with $line here done
场景 | 文件模板化 | Template
linux – How to substitute shell variables in complex text files – Stack Overflow
使用环境变量,替换在文件中的变量
在部署服务时,脚本的部分内容是是动态生成的。我们可以使用 sed 进行替换,但是我们发现了更好的方法。
通过使用 envsubst 命令,可以替换在文件中的变量引用(类似于其他编程的模板引擎)。
该笔记将记录:如何使用 envsubst 替换文件中的变量,来动态生成文件内容的方法。
解决方案
对于如下文件模板:
# cat example.txt.template 了撒谎法拉速度飞书了士大夫了士大夫撒地方 sadfasfdsa Replace ${FOO} ${BAR} with values. safdasfdadsfasfdafdasfdasdfasdfasfdadsfafdsaf
以及如下环境变量:
export FOO=abcd export BAR=1234
执行如下 Shell 命令:
envsubst < "example.txt.template" > "example.txt"
将输出如下文件及内容:
# example.txt.template 了撒谎法拉速度飞书了士大夫了士大夫撒地方 sadfasfdsa Replace abcd 1234 with values. safdasfdadsfasfdafdasfdasdfasdfasfdadsfafdsaf
附加说明
命令 envsubst 属于 gettext 软件包。在 Debian 中,通过如下命令安装:apt-get install gettext-base