两个bash函数创建一个数据库

echo " 1,2"> database

grep "^1," database\| sed -e "s/\^1", //" | tail -n 1

echo " 1,2"> database


  1. echo: echo 是一个常用的命令行工具,用于将文本输出到终端或者重定向到文件中。

  2. 1 和 2: 这是 shell 脚本中的位置参数。当你在执行脚本时提供了参数,例如 ./script.sh apple banana,那么 1 将是 "apple",而 2 将是 "banana"。在这个命令中,echo "1,2" 将输出第一个和第二个参数,并在它们之间用逗号分隔。

  3. > database: 这是重定向操作符。它将命令的输出(在这种情况下,是 1,2 的值)重定向到一个名为 database 的文件中。如果 database 文件不存在,则创建它;如果存在,则会覆盖其中的内容。

因此,当你执行这个命令时,它将把 1 和 2 的值,以逗号分隔的形式,写入或覆盖名为 database 的文件中。例如,如果你运行 ./script.sh apple banana,那么 database 文件中将会有内容 apple,banana

grep "^1," database\| sed -e "s/\^1", //" | tail -n 1


  1. grep "^$1," database:

    • grep 是一个用于在文件中搜索文本模式的工具。

    • ^1, 是一个正则表达式。\^ 表示匹配行的开始,1 是脚本的第一个参数,后跟一个逗号。

    • database 是要搜索的文件名。

    • 所以这个命令的意思是从 database 文件中查找以第一个脚本参数开始的行。

  2. sed -e "s/^$1", //:

    • sed 是一个流编辑器,用于处理和转换文本。

    • -e 选项用于指定编辑命令。

    • s/^$1", // 是一个替换命令。它的目的是替换文本中以第一个脚本参数开始的部分,并将其替换为空(即删除它)。

    • 因此,这个命令会删除每行开始于 $1," 的内容。

  3. tail -n 1:

    • tail 是一个用于显示文件的末尾内容的命令。

    • -n 1 选项表示只显示最后一行。

综上所述,这个整个命令的工作流程如下:

  1. 从 database 文件中搜索以脚本的第一个参数开头的行。

  2. 使用 sed 命令删除这些行中以脚本的第一个参数和逗号开始的部分。

  3. 最后,使用 tail 命令只显示经过 sed 处理后的内容中的最后一行。

这样,你将得到一个经过处理的文本,其中以 $1 开头的部分被删除,并且只返回最后一行结果。

相关推荐
一 乐12 分钟前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot
Teacher.chenchong21 分钟前
R语言实现物种分布预测与生态位分析:多元算法实现物种气候生态位动态分析与分布预测,涵盖数据清洗、模型评价到论文写作全流程
开发语言·算法·r语言
TDengine (老段)34 分钟前
TDengine IDMP 赋能新能源:光伏电站智能运维实践
大数据·运维·数据库·物联网·时序数据库·tdengine·涛思数据
烤麻辣烫38 分钟前
23种设计模式(新手)-7迪米特原则 合成复用原则
java·开发语言·学习·设计模式·intellij-idea
菠菠萝宝1 小时前
【Java手搓RAGFlow】-1- 环境准备
java·开发语言·人工智能·llm·openai·rag
Chan161 小时前
热点数据自动缓存方案:基于京东 Hotkey 实践
java·数据库·redis·mysql·spring·java-ee·intellij-idea
Leisure -_-1 小时前
Oracle Database 26ai Free 安装讲解
数据库·oracle
i***71951 小时前
如何查看PostgreSQL的版本
数据库·postgresql
攻城狮CSU1 小时前
C# 异步方法
开发语言·前端·c#
lsx2024061 小时前
ionic 模态窗口:深入解析与最佳实践
开发语言