首页
学习
活动
专区
圈层
工具
发布

在Bash中如何从字符串中删除固定的前缀后缀

更多好文请关注↑ 问: 我想从字符串中删除前缀/后缀。例如,给定: string="hello-world" prefix="hell" suffix="ld" 如何获得以下结果?...如果模式与 parameter 扩展后的值的开始部分匹配,则扩展的结果是从 parameter 扩展后的值中删除最短匹配模式(一个 # 的情况)或最长匹配模式(## 的情况)的值 ${parameter...如果模式与 parameter 扩展后的值的末尾部分匹配,则扩展的结果是从 parameter 扩展后的值中删除最短匹配模式(一个 % 的情况)或最长匹配模式(%% 的情况)的值。...e "s/$suffix$//" o-wor 在sed命令中,^ 字符匹配以 prefix 开头的文本,而结尾的 匹配以 参考文档: stackoverflow question 16623835...在Bash中如何将字符串转换为小写 在shell编程中$(cmd) 和 `cmd` 之间有什么区别 如何从Bash变量中删除空白字符 更多好文请关注↓

5.7K10

【Day18】LeetCode算法刷题

首先,删除 所有的空格和破折号。 其次,将数组从左到右 每3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。...3 个数字:单个含 3 个数字的块。 4 个数字:两个分别含 2 个数字的块。 最后用破折号将这些块连接起来。...需要删除多余的元素,就需要遍历字符串中的每一个数字,为此我们可以先获取字符串的长度,再使用charAt()方法遍历每个数字,当遇到空格或者破折号就忽略掉,其余的数字就存放进集合中,为接下来的分组做准备。...需要分组,我们依旧需要遍历集合中的元素,和上面的思路一致,获取集合长度,遍历集合,将集合中的元素重新组成字符串,每遍历到下标与3取模为0时,就给字符串增添一个破折号“-”,这样就满足了三个数字一组的条件...; 这时我们就需要通过循环来遍历一个正整数每个位置上的数字,再将每个数字与自己相乘,一并累加起来,就得到了平方和。

58220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    图解LeetCode——1694. 重新格式化电话号码(难度:简单)

    一、题目 给你一个字符串形式的电话号码 number 。number 由数字、空格 ' '、和破折号 '-' 组成。 请你按下述方式重新格式化电话号码。 首先:删除 所有的空格和破折号。...其次:将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。...三、解题思路 3.1> 思路1:先去掉空格和破折号,再拼装结果 步骤一:根据题意,我们可以先利用replaceAll(...)方法去掉number字符串中的空格和破折号。...步骤三:最后,我们在针对末尾是4个数字的情况,拼装为2个数字 + '-' + 2个数字的情况;或者,单个含2个或3个数字的块。...那么,每当拼装了3个数字字符的时候,我们就在其末尾加上破折号,以此类推,直到遍历完number字符串中的所有字符。

    35011

    如何处理Shell脚本中的特殊字符

    因此,字符串中任何数量的空格和其他特殊字符(?、[、\)都将成为字符串的一部分: #!...处理带有“-”和“+”前缀的文件名 文件名可以包含前导破折号 (-) 或加号 (+)。众所周知,命令行中的破折号 (-) 前缀表示大多数命令的选项。因此,我们的脚本在处理这些文件名时会产生错误。...幸运的是,我们可以通过在包含破折号或加号前缀的文件名前使用双破折号 (–) 来解决此问题。它指示命令选项的结尾,以便后续参数将被视为文件名: #!...此外,它不会影响不包含前导破折号或加号的其他文件名。 3.1. 处理名为“-”的文件名 我们可能会遇到文件名仅由一个破折号组成的文件。但是,某些命令会将其视为标准输入或标准输出。...但是,当我们将此字符串提供给读取命令时,它会删除那些出现在换行符和前导空格旁边的反斜杠。 4.2. -r选项_ 如果我们想覆盖读取的默认行为并保留反斜杠怎么办?

    9.5K30

    getopt(1) command

    --:可选,用于明确区分 getopt 命令的选项和需要解析的选项字符串。 OPTSTRING:描述选项格式的字符串。 PARAMETERS:需要解析的实际命令行参数。...OPTSTRING 是一个描述可接受选项的字符串。短选项(单个字母)直接写在字符串中,如果选项需要参数,则在字母后跟一个冒号(:)。例如: a 选项 -a,无参数。 b: 选项 -b,带一个参数。...如果找不到此选项,则使用getopt的第一个不以'-'开头的参数作为短选项字符串。每个短选项字符后面可以跟一个冒号,表示它有一个必需的参数。后面跟两个冒号,表示它有一个可选参数。...注意,空格和特殊(依赖于Shell的)字符在这种模式下可能会造成严重破坏(就像其他 getopt(1) 实现中所做的那样)。 -- 表示选项结束,后面的所有内容都作为参数。...这个列表中的选项会按照标准的格式排列,例如,将所有选项和它们的参数放在一起,并处理掉单破折号和双破折号分隔符。

    27810

    LeetCode笔记:482. License Key Formatting

    大意: 现在给你一个字符串S,代表我们想要组成的一个软件的序列号。字符串S由数字和字母以及破折号组成。破折号将数字和字母分割成一组组。(比如,如果有M个破折号,则字符串被分为M+1组)。...字符串中的破折号可能放错了位置。 我们想要每组字符的长度为K(除了第一组可能短一些,但必须至少包含一个字符)。要满足这些要求,我们会重新插入破折号。此外,所有的小写字母必须转换成大写字母。...注意: 字符串S的长度不会超过12000,K是个正数。 字符串S只由数字及字母(a-z 和/或 A-Z 和/或 0-9)以及破折号(-)组成。 字符串S非空。...思路: 题目说了一长串,其实总结起来就是: 给一个字符串和正整数,将字符串用破折号分成多个长度为K的组(第一组可以小于K),所有字母必须为大写。...注意最后可能会在结果的开头出现一个破折号,也就是未翻转前的最后,这时候要去除掉。

    25610

    LeetCode 1694. 重新格式化电话号码(模拟)

    题目 给你一个字符串形式的电话号码 number 。 number 由数字、空格 ' '、和破折号 '-' 组成。 请你按下述方式重新格式化电话号码。 首先,删除 所有的空格和破折号。...其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。 剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。...4 个数字:两个分别含 2 个数字的块。 最后用破折号将这些块连接起来。 注意,重新格式化过程中 不应该 生成仅含 1 个数字的块,并且 最多 生成两个含 2 个数字的块。...步骤 2:剩下 3 个数字,将它们放入单个含 3 个数字的块。第 2 个块是 "456" 。 连接这些块后得到 "123-456" 。...步骤 2:剩下 4 个数字,所以将它们分成两个含 2 个数字的块。这 2 块分别是 "45" 和 "67" 。 连接这些块后得到 "123-45-67" 。

    49010

    LeetCode 482. 密钥格式化

    题目 给定一个密钥字符串S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。...给定一个数字 K,重新格式化字符串,除了第一个分组以外,每个分组要包含 K 个字符,第一个分组至少要包含 1 个字符。两个分组之间用 ‘-’(破折号)隔开,并且将所有的小写字母转换为大写字母。...给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。...示例 1: 输入:S = "5F3Z-2e-9-w", K = 4 输出:"5F3Z-2E9W" 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉。...解题 对原字符串逆序处理即可 注意最后一个-在末端,删除之 class Solution { public: string licenseKeyFormatting(string S, int

    50320

    linux中操作带有空格和特殊字符的文件名

    这里最明显的问题之一是——究竟是谁创建 / 处理具有 Hash(#)、分号(;)、破折号(-)或任何其他特殊字符的文件 / 文件夹名称。 创建一个以破折号开头的文件-,比如**-abx.txt**。.../-abc.txt 如果文件夹中有很多文件名包含破折号,并且您想一次删除所有文件,请执行以下操作: >rm ./-* 重要注意事项: 1.对于文件名称中任意数量的连字符及其出现,遵循与上述相同的规则.../#bc.txt or >rm '#bc.txt' 要删除文件名中带有哈希 # 的所有文件,您可以使用: # rm ./#* 处理名称中带有分号 ; 的文件如果您不知道,分号在 BASH 和其他...分号可让您一次执行多个命令并充当分隔符。你有没有处理过任何带有分号的文件名?如果不在这里,你会的。创建一个包含分号的文件。...您必须在ls 命令中使用开关 '-a'或'-A'来查看此类文件。 此类文件的创建、编辑、重命名和删除非常简单。

    9.1K20

    482. 密钥格式化

    有一个密钥字符串 S ,只包含字母,数字以及 '-'(破折号)。其中, N 个 '-' 将字符串分成了 N+1 组。 给你一个数字 K,请你重新格式化字符串,使每个分组恰好包含 K 个字符。...特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。...给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。...示例 1: 输入:S = "5F3Z-2e-9-w", K = 4 输出:"5F3Z-2E9W" 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉...示例 2: 输入:S = "2-5g-3-J", K = 2 输出:"2-5G-3J" 解释:字符串 S 被分成了 3 个部分,按照前面的规则描述,第一部分的字符可以少于给定的数量,其余部分皆为

    38620

    Sqoop简介以及安装

    注意:Hadoop参数前面是单个破折号字符(-),而特定于工具的参数则以两个破折号(--)开头,单个字符参数则是单个破折号,如-P。     ...2.选项文件支持注解,在选项文件中以#字符开头即可。注释需要新起一行使用,不能和选项文本混写。     3.选项文件中所有注释和空行都会被忽略。     ...4.选项文件中开头和结尾的空格被忽略。     5.选项文件中用“”标识的字符串中出现的空格是有效的,不会被忽略。引用的字符串不能超过行的范围。...3.可以在一个命令行中指定多个选项文件。调用选项文件需要写出选项文件的全路径。     ...其他工具     validation:对数据进行计算,符合条件的数据进行导入或导出     sqoop-job:创建和处理保存的作业。

    1.4K20

    Qt正则表达式类QRegExp(附检验小程序)

    例如,^#include将仅匹配以字符’#include’开头的字符串。(当插入号是字符集的第一个字符时,它具有特殊含义,请参见字符集。) $ 美元表示字符串的结尾。...例如,正则表达式\ bOK \ b表示在单词边界(例如字符串或空白的开头)之后立即匹配字母“ O”,然后紧接在另一个单词边界(例如字符串或空白的结尾)之前匹配字母“ K”。...除此之外,还有其他一些其他字符可以和表达式组合,方括号表示匹配方括号中包含的任何字符。上述字符集缩写可以出现在方括号中的字符集中。除字符集缩写和以下两个例外外,字符在方括号中没有特殊含义。...其他一些组合 例子 解释 [abc] 方括号中间是几个字母,表示a,b,c这三个单独的字符 ^abc 除了a,b,c以外的字符 [a-z] 匹配a到z之间(包括a和z)的所有单个字符 [a-zA-Z]...a到z,A到Z的所有单个字符 (a|b) a或b 三.链接及下载 github检验小程序源码 codechina检验小程序源码 检验小程序下载(关注免费下载) qt正则表达式官方文档 很多人找不到相对应的文档

    7.2K21

    LeetCode 748:license-key-formatting(密钥格式化)

    特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。...示例 1: 输入:S = "5F3Z-2e-9-w", K = 4 输出:"5F3Z-2E9W" 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉。...S 只包含字母数字(a-z,A-Z,0-9)以及破折号'-' S 非空 取模&反转 /** * 执行用时:11 ms, 在所有 Java 提交中击败了65.27%的用户 *...用到了比较多的工具类内置方法,比如: 删除某个元素,底层是通过复制子序列来完成的; public AbstractStringBuilder deleteCharAt(int index) {...一共需要两次遍历,第一次遍历字符串求得目标字符串,第二次遍历需要将目标字符串进行反转。 空间复杂度:O(1) 或 O(N),其中 N 为字符串的长度。这里的空间复杂度统计的是存储返回值以外的空间。

    32020

    在Linux上的Shell编程(2)

    $ chap *能够匹配以chap开头的所有文件。在指定的命令被调用之前,这些文件名替换就已经完成了。...1.4.2 匹配单个字符 星号(*)能够匹配零个或多个字符,也就是说,x*能够匹配文件x,也能够匹配x1、x2、xabc等。问号(?)仅能够匹配单个字符。因此cat ?...能够显示出所有文件名中只有单个字符的文件,而cat x?则会显示出文件名长度为两个字符且第一个字符是x的所有文件。...匹配两个字符,*匹配余下的零个或多个字符,其效果就是找出所有文件名长度至少为两个字符的文件。 另一种匹配单个字符的方法是在中括号[]中给出待匹配的字符列表。例如,[abc]能够匹配字符a、b或c。...可以通过配合使用字符范围以及字符列表来实现复杂的替换。例如,[a–np–z]*能够匹配以字母a~n或者p~z开头的所有文件(或者说得再简单些,就是不以小写字母o开头的文件)。

    95610

    ​LeetCode刷题实战482:密钥格式化

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...特别地,第一个分组包含的字符个数必须小于等于 K,但至少要包含 1 个字符。两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。...示例 示例 1: 输入:S = "5F3Z-2e-9-w", K = 4 输出:"5F3Z-2E9W" 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉。...提示: S 的长度可能很长,请按需分配大小。K 为正整数。 S 只包含字母数字(a-z,A-Z,0-9)以及破折号'-' S 非空 解题 思路: 先是对于原字符串的处理, 1....去除破折号’-‘;2. 将小写的字母转换为大写. 然后对于处理后的字符串进行增加破折号的操作;1. 若长度正好是k的整数倍;可以正常增加’-‘(每k个字符增加). 2.

    28130

    【Leetcode -461.汉明距离 -482.密钥格式化】

    Leetcode -461.汉明距离 题目:两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。 给你两个整数 x 和 y,计算并返回它们之间的汉明距离。...(int x, int y) { int ans = 0; //整型有32位比特位,遍历两个数的所有比特位,不同的用ans统计 for (int i = 0...s,仅由字母、数字字符和破折号组成。...此外,两组之间必须插入破折号,并且应该将所有小写字母转换为大写字母。 返回重新格式化的许可密钥 。...示例 1: 输入:S = “5F3Z-2e-9-w”, k = 4 输出:“5F3Z-2E9W” 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉。

    16410

    密钥格式化 : 简单字符串模拟

    题目描述 这是 LeetCode 上的 482. 密钥格式化 ,难度为 简单。 Tag : 「模拟」 有一个密钥字符串 S,只包含字母,数字以及 '-'(破折号)。...两个分组之间需要用 '-'(破折号)隔开,并且将所有的小写字母转换为大写字母。 给定非空字符串 S 和数字 K,按照上面描述的规则进行格式化。...示例 1: 输入:S = "5F3Z-2e-9-w", K = 4 输出:"5F3Z-2E9W" 解释:字符串 S 被分成了两个部分,每部分 4 个字符; 注意,两个额外的破折号需要删掉。...S 只包含字母数字(a-z,A-Z,0-9)以及破折号'-' S 非空 模拟 简单字符串模拟,从后往前处理,避免对首个分区的分情况讨论和取余操作。...在仓库地址里,你可以看到系列文章的题解链接、系列文章的相应代码、LeetCode 原题链接和其他优选题解。

    25700

    【MySQL进阶】了解linux操作系统下mysql的配置文件和常用选项

    ——在选项名称中,破折号 ( - ) 和下划线 ( _ ) 在⼤多数情况下可以互换使⽤,但前导破折号不能转为下划线,例如: --skip-grant-tables 和 --skip_grant_tables...,那么就要知道这个选项配置文件的语法使用~~ 选项⽂件中指定选项时,省略两个前导破折号,并且每⼀⾏表⽰⼀个选项 例如: --quick 和 --host=127.0.0.1 在选项⽂件中应表⽰成 quick...和host=127.0.0.1 #comment , ;comment注释⾏以 # 或 ; 开,注释可以从⼀⾏的中间开始 [ group ]设置选项的程序或组的名称,不区分⼤⼩写。...,我们保存退出即可~~~ [client] MySQL发⾏版中所有客⼾端程序都会读取并应⽤这个组下的选项(除了mysqld), 在这个组下可以指定适⽤于所有客⼾端程序的通⽤选项,例如配置⽤⼾名和密码(...includedir 指定的目录,加载该目录下 ​​所有以 .cnf 结尾的文件​​ 并合并它们的配置到主配置文件(my.cnf)中。 ️

    82010

    在 Linux 命令行上编辑 PDF

    你收到的许多文件都是 PDF 格式的。有时这些 PDF 需要进行处理。例如,可能需要删除或添加页面,或者你可能需要签署或修改一个特定的页面。 不管是好是坏,这就是我们所处的现实。...有一些花哨的图形用户界面工具可以让你编辑 PDF,但我一直对命令行感到最舒服。在这个任务的许多命令行工具中,当我想修改一个 PDF 时,我使用的是 qpdf 和 poppler-utils。...安装 在 Linux 上,你可以用你的包管理器(如 apt 或 dnf)来安装 qpdf 和 poppler-utils。...qpdf qpdf 命令可以做很多事情,但我主要用它来: 将一个 PDF 分割成不同的页面 将多个 PDF 文件合并成一个文件 要将一个 PDF 分割成不同的页面: qpdf --split-pages...结尾处的两个破折号(--)表示没有更多的文件需要处理。这是一个参数反映内部模型的例子,而不是人们使用它的目的,但至少它能运行并产生有效的 PDF!

    2.6K10
    领券