当前位置:首页 > 技术资料 > 股票知识 > 正文

方括号怎(zen)么打(电脑上方括号怎么打)

www.51spjx.com  2023-05-23 10:03  
100方括号怎么打(电(dian)脑上方括号怎么打)-食品机械(xie)商务网

这篇文章将要介绍方括号及其在命令(ling)行中的不同用法(fa)。

-- Paul Brown

这篇(pian)文章将要介绍方括号(hao)及其在命令行中的不同用(yong)法。

看完 花括号在命令行中的(de)用法 之后,现在(zai)我们继续来看方(fang)括号([])在上下文中是(shi)如何发挥作用的。

通配

方括号最简单的用法就是通配。你可能在知道“ (comGlobbing)”这个概念之前就已经通(tong)过通配来匹配内容了,列出具有相同特征的多个文件就是(shi)一个很常见的场景,例如列出所(suo)有 JPEG 文件:

ls *.jpg

使用 通配符(wildcard)来得到(dao)符合某个模式的(de)所有内容,这个过程(cheng)就叫通配。

在上面的例(li)子当中,星号(*)就代表“0 个或(huo)多个字符”。除此以外,还有代(dai)表“有且仅有一个字符”的问号(?)。因此

ls d*k*

可以列出(chu) darkly 和 ducky,而且 dark 和 duck 也是可以(yi)被列出的,因为 * 可(ke)以匹配 0 个字符。而

ls d*k?

则只能列出 ducky,不会列出 darkly、dark 和 duck。

方(fang)括号也可以用于(yu)通配。为了便于演示,可(ke)以创建一个用于测试的目(mu)录,并在这个目录下创(chuang)建文件:

touch file0{0..9}{0..9}

(如果你还不清楚上面这个(ge)命令的原理,可以看一下(xia) 另一篇介绍花括号的文章 )

执行上面这个命令之后,就会创建 file000、file001、……、file099 这 100 个文件。

如果要列出这些文(wen)件当中第二位数字是 7 或 8 的文件,可以执行:

ls file0[78]?

如果要列出(chu) file022、file027、file028、file052、file057、file058、file092、file097、file098,可以执行:

ls file0[259][278]

当然,不仅仅是 ls,很多其它的命令行工具都可(ke)以使用方括号来进行(xing)通配操作。但在删除文件、移(yi)动文件、复制文件的过程中使用通配(pei),你需要有一点横向思维(wei)。

例如将 file010 到 file029 这(zhe) 30 个文件复制成(cheng) archive010 到 archive029 这 30 个副本,不可(ke)以这样执行:

cp file0[12]? archive0[12]?

因为通配只(zhi)能针对已有的文件,而 archive 开头的(de)文件并不存在,不能(neng)进行通配。

而这条命令

cp file0[12]? archive0[1..2][0..9]

也同样(yang)不行,因为 cp 并不允(yun)许将多个文件复制到多个文件(jian)。在复制多个文件的情况(kuang)下,只能将多个文件复制到一个指定的(de)目录下:

mkdir archive

cp file0[12]? archive

这条命令是可以正常(chang)运行的,但它只会(hui)把这 30 个文件以同样的名称复(fu)制到 archive/ 目录下,而这并不是(shi)我们想要的效果。

如果你阅读过我(wo) 关于花括号的文章 ,你大概(gai)会记得可以使用 % 来截掉字符串的末尾(wei)部分,而使用 # 则可以截掉字符(fu)串的开头部分。

例(li)如:

myvar="Hello World"

echo Goodbye Cruel ${myvar#Hello}

就会输出 Goodbye Cruel World,因(yin)为 #Hello 将 myvar 变量中开头(tou)的 Hello 去掉了。

在通配的过程中,也可(ke)以使用这一个技巧。

for i in file0[12]?;\

do\

cp $i archive${i#file};\

done

上面的第一行(xing)命令告诉 Bash 需要对所有(you) file01 开头或者 file02 开头,且后面只跟一个(ge)任意字符的文件进行操(cao)作,第二行的 do 和第四行(xing)的 done 代表需(xu)要对这些文件都(dou)执行这一块中的(de)命令。

第三行就是实(shi)际的复制操作了,这里使用了两次 $i 变量:第一次在 cp 命令中直接作为源文件的文件名(ming)使用,第二次则是截掉文件名开头的 file 部分,然后在开头补上一个(ge) archive,也就是这样:

"archive" + "file019" - "file" = "archive019"

最终整个 cp 命令展(zhan)开为:

cp file019 archive019

最(zui)后,顺带说明一下反斜杠 \ 的作用是将一条长命令拆分成多(duo)行,这样可以方(fang)便阅读。

在下(xia)一节,我们会了解方括号的(de)更多用法,敬请关注。

via: https://www.linux.com/blog/2019/3/using-square-brackets-bash-part-1

作(zuo)者: Paul Brown 选题: lujun9972 译者(zhe): HankChow 校对: wxy

本文由(you) LCTT 原创(chuang)编译, Linux中国 荣誉推出

点击“了解(jie)更多”可访问文内(nei)链接

本文地址:http://www.51spjx.com/tech-detail/t240325.html

  • 上一篇:笔记本无线网络开关(联想笔记本无线网络开关)
  • 下一篇:广西北海十大旅游景点(广西北海十大旅游景点排名)
  • 打印该页 】【 关闭窗口