当前位置:首页 > 知识学习 > 详情

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

2024-12-30 01:24:01 阅读(31) 精品歌词网
100方括号怎么(me)打(电脑上方括号怎么打)-精品歌(ge)词网

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

-- Paul Brown

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

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

通配

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

ls *.jpg

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

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

ls d*k*

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

ls d*k?

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

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

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

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

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

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

ls file0[78]?

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

ls file0[259][278]

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

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

cp file0[12]? archive0[12]?

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

而这条命令

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

也同样不行,因(yin)为 cp 并不允许将多个文件复(fu)制到多个文件。在复制(zhi)多个文件的情况下,只能将多(duo)个文件复制到一个指定的目录(lu)下:

mkdir archive

cp file0[12]? archive

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

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

例如:

myvar="Hello World"

echo Goodbye Cruel ${myvar#Hello}

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

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

for i in file0[12]?;\

do\

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

done

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

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

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

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

cp file019 archive019

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

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

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

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

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

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

上一篇:微信里面怎么没有微粒贷(微信微米粒借贷怎么开通)

下一篇:形容声势浩大(形容声势浩大或事业伟大的成语有哪些)

推荐阅读:

  • valentino怎么读(valentino怎么读谐音)

    valentino怎么读(valentino怎么读谐音)

    时尚界的每一天都是谣言八卦满天飞的。这两天传得最火热的一则消息是,Valentino可能要和Gucci做一家人了。据《女装日报》的报道,一位匿名消息人士透露,Gucci母公司开云集团正积极与卡塔尔国有背景的投资公司Mayh…
    2023-05-25 阅读(28)
  • 74cm腰围(wei)是多少尺寸(腰围34是多少尺码)

    74cm腰围(wei)是多少尺寸(腰围34是多少尺码)

    这是《17款流行(xing)旗袍裁剪图教学》专栏的第17篇给喜欢旗袍的你,也能(neng)做出一件属于自己的旗袍(pao)第(di)十六节:钻石领中长袖(xiu)时装旗袍套装款式结构特征:中长旗袍(pao),采用中西式结合的时装化设计…
    2023-05-25 阅读(29)
  • 沙发高度一(yi)般多少尺寸(中式沙发高度一般多少尺寸)

    沙发高度一(yi)般多少尺寸(中式沙发高度一般多少尺寸)

    我们选购沙发最(zui)根本的前提,是沙发能够顺利、美观地(di)出现在你的家里。这取决(jue)于沙发的尺寸。包括(kuo)沙发的宽度、深度(du)、和高度。沙发尺寸(cun)一定要记住宜小不宜大,沙(sha)发尺寸不要坐满,要给…
    2023-05-25 阅读(33)
  • 大汉天子卫子夫(大汉天子卫子夫第几集当皇后)

    大汉天子卫子夫(大汉天子卫子夫第几集当皇后)

    小时候的高质量古装剧,《大汉天子》必须有姓名。橘因为这个剧,对汉朝历史特别感兴趣。这部剧也是18年前的了,放现在来看,阵容很强大了。(哎,看过的可能都老了系列。)那个时候的黄晓明还没有“明学”,饰演的刘…
    2023-05-25 阅读(31)
  • 欢迎的英语怎么读(欢迎的英语怎么读三年级下册单词)

    欢迎的英语怎么读(欢迎的英语怎么读三年级下册单词)

    2023年03月28日今日份单词有言有味说单词(九百五十二讲)今日主题:单词的递进+演绎[220号收纳箱]**Leukemia[lu??ki?mi?]n.[内科][肿瘤]白血玻**Leukemia[lu??ki?mi?]n.[内科][肿瘤]白血玻**Leukemia[lu??ki?mi?]n…
    2023-05-25 阅读(35)