首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用bash脚本为最后一个单词腾出空间

使用bash脚本为最后一个单词腾出空间,可以通过以下步骤来实现:

  1. 首先,我们需要获取待处理的文本,可以通过命令行参数或者读取文件来获得。假设我们的文本保存在一个变量中。
  2. 接下来,我们可以使用bash内置的字符串处理功能,如cut命令或者正则表达式来提取最后一个单词。下面是一个使用cut命令的示例:
  3. 接下来,我们可以使用bash内置的字符串处理功能,如cut命令或者正则表达式来提取最后一个单词。下面是一个使用cut命令的示例:
  4. 这里的echo $text | rev | cut -d' ' -f1 | rev命令将文本反转后,以空格作为分隔符提取第一个字段,再次反转回来,从而获取最后一个单词。
  5. 现在我们已经得到了最后一个单词,接下来我们需要计算该单词的长度,并为其腾出空间。可以使用expr命令进行计算,并将结果保存在一个变量中。
  6. 现在我们已经得到了最后一个单词,接下来我们需要计算该单词的长度,并为其腾出空间。可以使用expr命令进行计算,并将结果保存在一个变量中。
  7. 最后,我们可以使用字符串替换功能,将原始文本中的最后一个单词替换为腾出空间后的单词。可以使用bash的${parameter/pattern/string}格式来进行替换,其中parameter是待替换的变量,pattern是要匹配的模式,string是用于替换的字符串。下面是一个示例:
  8. 最后,我们可以使用字符串替换功能,将原始文本中的最后一个单词替换为腾出空间后的单词。可以使用bash的${parameter/pattern/string}格式来进行替换,其中parameter是待替换的变量,pattern是要匹配的模式,string是用于替换的字符串。下面是一个示例:
  9. 这里的$(printf "%${word_length}s")用于生成与最后一个单词长度相等的空格字符串,然后通过${text/$last_word/$(printf "%${word_length}s")}将原始文本中的最后一个单词替换为生成的空格字符串。

综上所述,以上是使用bash脚本为最后一个单词腾出空间的步骤。在实际应用中,可以根据具体需求对脚本进行进一步的优化和定制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何Bash脚本使用expect来SSH命令提供密码

问题 我正尝试在 Bash 脚本使用 Expect 来提供 SSH 密码。密码输入这部分工作正常,但我并没有像预期那样进入 SSH 会话,而是直接回到了 Bash 环境中。 我的脚本如下: #!...脚本继续执行。...我之所以先使用 Bash 脚本再调用 Expect,是因为我需要通过一个菜单来选择要连接的单元 / 设备。 回答 混合使用 Bash 和 Expect 可能不是达到期望效果的最佳方式。...我会尝试只使用 Expect 来实现: #!...虽然 sshpass 有可能覆盖这些参数,但在它启动并能够执行覆盖之前,存在一个时间段,此时密码可被任何进程查看,这是极大的安全隐患。强烈建议不要将这种形式的脚本用在生产环境上。

13010

Linux系统开发: 学习linux三剑客(awk、sed、grep)(上)

-E 将范本样式延伸的普通表示法来使用,意味着能使用扩展正则表达式。 -f 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式每一列的范本样式。...:所有包含内容的行,否则输出空 需运用-r/-R/-d recurse 选项参数,指明查找路径目录 $ grep "bash" -r ./ #在当前目录下查找文件内容bash $...和 hold space相关选项时候会进行之间的数据流编辑操作 5、最后根据操作执行hold space空间操作,选择性显示到STDOUT 3.3 选项参数 -c/--copy 用拷贝代替重命名 -e...t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令处,或者到脚本的末尾。...匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d。 * 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行。

9.3K21
  • 02·Shell编程-变量

    例如: 1.在游戏中,英雄的等级1,打怪升级(变)10级 2.游戏中人物名字:Driver_Zeng,使用了改名卡,变为:曾老湿 3.植物大战僵尸:僵尸的存活状态True,被植物打死了,变为False...---- 如何使用变量 [root@m01 ~]# vim test.sh #!...$n 脚本的第N个参数 命令传参,传递给脚本,在脚本使用 $# 统计脚本参数的个数 判断脚本是否传参 $* 获取脚本所有的参数 将所有参数当成是一个整体,对传递的参数进行判断 $@ 获取脚本所有的参数...上一个运行脚本的pid $_ 上一个命令或者脚本最后一个参数 类似于ESC + . ---- $?...# 思路分析 1.如何将一句话变成一个一个单词 2.将每一个单词拿出来跟6进行对比 3.如果大于6就打印 4.如果大于6就打印出具体个数 # 思路转代码 echo "I am oldboy linux's

    1.1K20

    linux下命令自动补全总结

    很多命令都会提供一个bash-complete的脚本,在执行该命令时,敲tab可以自动补全参数,会极大提高生产效率。...docker命令自动补全 yum install docker后,会有一个文件: /usr/share/bash-completion/completions/docker ; 显然,该脚本是用于bash...COMP_TYPE:一个整数值,与触发调用补全函数时试图进行补全的类型相对应,正常补全为“TAB”,连续输入制表符后的补全列表“?”,列出其它部分补全条目“!”...,没有修改单词而列出补全条目“@”,补全菜单“%”,这个变量只能在可编程补全的shell函数中使用。 COMP_KEY:触发当前补全函数的键,或键序列中的最后一个键。...COMP_WORDS:一个数组变量,包含当前命令行的每个单词,与“readline”一样当前行被COMP_WORDBREAKS拆分成单词,这个变量只能在可编程补全的shell函数中使用

    6.6K50

    命令行上的数据科学第二版 四、创建命令行工具

    任何其他文件都是使用命令行工具下载或生成的。 4.2 将一行程序转换成 Shell 脚本 在这一节中,我将解释如何把一行程序变成一个可重用的命令行工具。比方说,您想获得一段文本中使用频率最高的单词。...用-F将那些模式解释固定字符串。只选择那些包含与-w构成完整单词的匹配的行。用-v选择不匹配的行。 每一个命令行都提供了一个帮助说明....如果没有定义 Shebang,我们在整本书中使用的 ZShell 默认使用可执行文件/bin/sh。在这种情况下,我希望bash将命令解释比sh给我们更多的功能。...4.3.1 移植 Shell 脚本 首先,让我们看看如何将刚刚创建的 Shell 脚本移植到 Python 和 R 中。换句话说,哪些 Python 和 R 代码我们提供了标准输入中最常用的单词?...编写一个健壮且安全的 Bash 脚本相当棘手。ShellCheck 是一个在线工具,可以检查你的 Bash 代码中的错误和漏洞。还有一个命令行工具可用。

    2.2K40

    第三十二章 : 流程控制:case 分支

    为此,我们使用了一系列的 if 命令来识别哪一个可能的选项已经被选中。这种类型的构造经常出现在程序中,出现频率如此之多,以至于许多编程语言(包括 shell)专门多选决策提供了一种流程控制机制。...Here are some valid patterns: 这里 case 语句使用的模式和路径展开中使用的那些是一样的。模式以一个 “)” 终止符。这里是一些有效的模式。...模式 描述 a) 若单词 “a”,则匹配 [[:alpha:]]) 若单词一个字母字符,则匹配 ???)...把这个模式做为 case 命令的最后一个模式,是一个很好的做法,可以捕捉到任意一个与先前模式不匹配的数值;也就是说,捕捉到任何可能的无效值。...这里我们看一个测试一个字符的脚本: #!

    14900

    误执行了rm -fr *之后,除了跑路还能怎么办?!

    前言 最近写个简单的 Bash 脚本都不上心了,写完连检查都不检查,直接拖到到实体服务器跑。...哈哈哈,小林没跑路,反而是恢复了回来,所以接下来说说小林是如何「从删库到恢复」的。 初探案发现场 来看看小林写的垃圾代码,是如何引发这次的删库。 ?...2、Shell 脚本指定 set -u 执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。 #!...$ bash test.sh hello 可以发现,echo a 输出了一个空行,Bash 忽略了不存在的 a,然后继续执行 echo hello。...实现思路: 删除文件时,它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清除回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间

    1.7K20

    临近五一,小林我删删删删库了,要跑路吗?

    写个简单的 Bash 脚本都不上心了,写完连检查都不检查,直接拖到到实体服务器跑。...哈哈哈,小林没跑路,反而是恢复了回来,所以接下来说说小林是如何「从删库到恢复」的。 正文 初探案发现场 来看看小林写的垃圾代码,是如何引发这次的删库。 ?...方案二:Shell 脚本指定 set -u 执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。 #!...$ bash test.sh hello 可以发现,echo a 输出了一个空行,Bash 忽略了不存在的 a,然后继续执行 echo hello。...实现思路: 删除文件时,它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清除回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间

    2.7K20

    Bash中$$ $! $# $0 $? $* $@ 等各种符号的含义

    $1 表示第 1 个位置参数, $- 扩展调用时由内置 set 命令指定的当前选项标志,或shell本身设置的选项标志(如 -i 选项)。 $0 扩展shell或shell脚本的名称。...如果使用命令文件调用Bash,则将 $0 设置该文件的名称。如果Bash是用 -c 选项启动的,那么 $? 扩展最近执行的前台管道的退出状态(退出码)。 $* 扩展从位置1开始的位置参数。...当扩展不在双引号内时,每个位置参数扩展一个单独的单词。在执行该操作的上下文中,这些单词会被进一步地单词拆分和文件名扩展。...当在双引号中展开时,它将扩展单个单词,每个参数的值由特殊变量 IFS 的第一个字符分隔。也就是说,$* 等价于$1c$2c... ,其中 c 是 IFS 变量值的第一个字符。.../manual/bash.html#Variable-Index 相关阅读: 如何通过一个Bash定界符来分割一个字符串 向Bash函数传递参数 如何Bash遍历文本文件的每一行 Bash中单引号和双引号的区别

    76140

    第三十四章 : 流程控制:for 循环

    因此在 bash 脚本中,for 循环是非常流行的构造。...在这个例子中,for 循环有一个四个单词的列表:“A”、“B”、“C”和 “D”。由于这四个单词的列表,for 循环会执行四次。每次循环执行的时候,就会有一个单词赋值给变量 i。...当在命令行中给出一个或多个文件名的时候,该程序会使用 strings 程序(其包含在 GNU binutils 包中),一个文件产生一个可读的文本格式的 “words” 列表。...然后这个 for 循环依次处理每个单词,判断当前这个单词是否目前为止找到的最长的一个。当循环结束的时候,显示出最长的单词。...我们将修改 longest-word 脚本,来使用这种方式: #!

    27810

    Linux: Shell脚本实现支持长选项参数

    在Linux Shell脚本中,短选项有时不够用或者不够直观。长选项(如--help、--version)则更加直观且易于理解。本文将详细讲解如何在Shell脚本中实现支持长选项参数的功能。...更具可读性:脚本使用者能更清晰地看到参数的意义。...二、实现思路 为了在Shell脚本中支持长选项,我们可以使用两种主要方法: 使用getopt命令:getopt是一个外部命令,可以解析短选项和长选项。...三、使用getopt命令解析长选项 getopt命令支持长选项,并且可以处理复杂的参数解析需求。以下是一个使用getopt的示例脚本: sh #!...打印解析结果: 最后打印输入文件和输出文件的值。 五、手动解析长选项 如果不想使用getopt,也可以手动解析长选项。以下是一个示例: sh #!

    28710

    终端操作(SHELL)技巧

    移动到行首或行尾 如下图, 如果我输入一个长的命令, 输入到最后在执行前我发现了问题, 需要在行首增加 sudo 。 这时我可以使用 Ctrl + A移动光标到行首. ? 8....删除一个单词 默认通过 退格键 可以删除一个字符, 但如果我的命令很长, 删除操作就会很慢。 可以通过 Esc + 退格键(Backspace) 来删除一个单词(以空格, 符号分割区分). 9....使用上个命令的最后参数 这个是很常见的场景, 比如我们创建一个目录, 一般紧接着就进到这个空目录操作了. 虽然可以补全操作, 但有一种更简单的方法,你也应该知道, 这会让你显得很酷。...使用一个命令 和上面不同的是, 这个操作是直接使用一个命令, 而不是最后一个参数. 假如我需要安装一个包, 执行完毕后发现需要 root用户才可以安装, 这时我需要在前面加sudo。...如果有自动脚本, 这让服务器运维增加风险属性。 小的脚本还好, 一旦脚本迭代了几个需求,臃肿复杂而且维护性极差, 甚至会非常不安全。 我推荐你使用高级语言来替代 SHELL。

    1.1K00

    大数据学习之Linux基础

    但是我们需要明白的是在这里填100GB本地磁盘不会马上虚拟机磁盘分配那么大的内存空间, 而是规定了虚拟机磁盘能使用c盘的最大容量, 以备不时之需 ? 虚拟机磁盘文件存放目录 ? ?...强行保存 :wq :x 3.编辑模式 移动光标 字符 h: 左;j: 下;k: 上;l: 右 单词 w: 移至下一个单词的词首 e: 跳至当前或下一个单词的词尾 b: 跳至当前或前一个单词的词首...wc命令: 统计数目 word count:包括行数, 单词数, 以及字节数(包括空格符) ? 学习命令技巧:通过 man 具体命令 查询该命令如何使用 eg: man wc ?...-n: 静默模式,不再默认显示模式空间中的内容 -i: 直接修改原文件 -e SCRIPT -e SCRIPT:可以同时执行多个脚本 -f /PATH/TO/SED_SCRIPT -r: 表示使用扩展正则表达式...注意 :每次重启后 ,如果中文显示不出来了, 需要执行如下命令 , # 因为LANG命令是对每一个bash而言的(一个窗口对应一个bash) LANG=zh_CN.UTF-8 ?

    1.3K40

    Linux 操作系统下的bash read命令

    这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。 Bash附带了许多内置命令,您可以在命令行或Shell脚本使用它们。 在本文中,我们将探讨内置的read命令。...bash内置read命令 read是bash内置命令,可从标准输入(或文件描述符)中读取一行并将该行拆分为单词。 第一个单词分配给名字,第二个单词分配给名字,依此类推。...通常,您应始终将read与-r选项一起使用。 更改定界符here doc read的默认行为是使用一个或多个空格,制表符和换行符作为分隔符,将行拆分为单词。...如果将IFS设置空格或制表符以外的字符,则单词之间将仅用一个字符分隔: echo "Linux::is:awesome." | \ 该行分为四个字。 第二个单词一个空值,表示定界符之间的段。...提示字串 编写交互式bash脚本时,可以使用read命令获取用户输入。 要指定提示字符串,请使用-p选项。 该提示会在执行read之前打印出来,并且不包含换行符。

    2.3K40

    Linux 命令行小技巧-持续更新

    执行之前的命令 在 Linux 中锁定或隐藏文件或目录 在 Linux 中检查单词拼写 列出所有 Shell 内置命令 如何在不使用Cron的情况调度Linux下的任务 如何使用clear命令清空终端的内容...i in {99…233}; do history -d $i; done #使用for循环清除指定连续的多条命令 ---- 获取吃掉你磁盘空间的最大的5个文件 一个使用du命令的简单单行脚本即可实现...中检查单词拼写 look 命令用于显示文件中以指定字符串前缀的任意行,同时它也可以帮你检查命令行中给定单词的拼写。...$ while true; do date >> date.txt ; sleep 5 ; done & 上述脚本的解释: while true :让脚本进入一个条件总真的循环中,也就是制造一个死循环...然而如果我们想运行某些测试,比如I/O评测,上述的单行脚本也管用。 ---- 如何使用clear命令清空终端的内容 你如何清空终端的内容?你可能会认为这是一个傻问题。

    90640

    shell_正则_变量_tr_awk_sed_cut(1)

    脚本调试 1.命令错误 hostnam :命令继续向下执行 2.语法错误 syntax error :默认不会继续执行下去 脚本调试 bash -n file.sh 来检测脚本中的语法错误 bash...默认打印的是字符串所以要加 $ 系统自带的环境变量 PATH HOME UID PWD PS1 1.变量赋值 name="Mage" 等号两边无空格 name="wang" 注意: 重新赋值变量,会重新开辟一个空间存放...bash 不支持浮点数,只支持小数 命名规则 StudentName : 大驼峰命名法 studentFirstName :小驼峰命名法(第一个单词的首字母不大写) 局部变量 echo $$查看当前的进程编号.../dev/ /etc/ ls可以同时显示多个目录 $_ 上一个命令的最后一个参数 ># echo $_ ># /etc 删除变量 unset + 变量名 查看变量 export...bash使用说明书 查询()介绍 :/\(list\)

    1.1K20

    SHELL(bash)脚本编程六:执行流程

    4、别名 如果非重定向或赋值语句的第一个单词一个普通单词bash会根据别名记录判定该单词是不是一个命令别名,如果是,则使用对应的文本替换该别名(注意此文本可以是shell能够接受的任意字符)。...如果需要在脚本使用命令别名,则需开启选项shopt -s expand_aliases。由于别名的功能都可以用函数实现,建议在脚本使用函数来代替命令别名。...扩展 扩展阶段对应于单词的各种变换,最终得到可用于执行的命令。 以如下脚本例解释此阶段依次进行的扩展(各种扩展的方法请看之前的文章): #!...bash利用环境变量IFS的值进行单词分割,如果扩展的结果单词中包含IFS中的任意字符,则被分割多个单词。如果扩展的结果空,则此单词被移除(引号中的空值会被保留)。...复合命令 bash中每种复合命令都使用一个C函数来实现,功能包括执行恰当的展开(如for循环中关键词in后面的单词),执行特定的命令,根据命令的返回值来变更执行流程等等。

    1.7K40

    linux中最为常用的三大文本(grep,sed,awk)处理工具

    ,或其它命令的输出; 它支持用户自定义函数和动态正则表达式等先进功能,是*nix下的一个强大编程工具; 它可以在命令行中使用,但更多是作为脚本使用; awk有很多内建的功能,比如数组、函数等,这是它和...awk脚本是由模式和操作组成的; 模式可以是以下任意一个: 正则表达式:使用通配符的扩展集; 关系表达式:使用运算符进行操作,可以是字符串或数字的比较测试。...“linuxtechi”的行 grep -v linuxtechi /etc/passwd -例6 使用 ^ 符号输出所有以某指定模式开头的行 Bash脚本将 ^ 符号视作特殊字符,用于指定一行或者一个单词的开始...,,,:/home/linuxtechi:/bin/bash root@Linux-world:~# Bash脚本将美元($)符号视作特殊字符,用于指定一行或者一个单词的结尾。...我们来看一个例子,在paswd文件中查找“LinuxTechi”单词

    6K10

    sed & awk 第二版学习(三)—— 编写 sed 脚本

    使用 sed 可以将类似于 vi 编辑器中手动的操作过程提取出来,并转换成一个非手动的过程,即通过执行一个脚本来实现。...检测脚本是否中工作的最好方式,是使用不同的输入样本进行测试并观察结果。sed 工作的三个基本原理脚本中的所有编辑命令都将依次应用于每个输入行。...其它一些命令告诉 sed,在到达脚本底部之前退出或者转到带标记的命令。sed 还维护了称为保持空间(hold space)的令一个临时缓冲区。可以将模式空间的内容复制到保持空间并在以后检索它们。...同样输入流也只有一个最后的行,可以使用寻址符号 $ 指定。 删除输入的最后一行: $d 当正则表达式作为地址提供时,命令只影响于这个模式匹配的行。...在某些方面,编写脚本就像给定事实的某种集合设计一个假设。通过增加测试数据来试着验证假设的合法性。

    6510
    领券