Tag: shell

在Bash中提取子string

给定一个文件名的formssomeletters_12345_moreleters.ext ,我想提取5位数字,并把它们放入一个variables。 所以为了强调这一点,我有一个文件名,其中包含x个字符,然后是一个五位数字序列,两边都是单个下划线,然后是另外一组x个字符。 我想采取5位数字,并将其放入一个variables。 我对这个可以完成的不同方式的数量非常感兴趣。

我怎样才能扭转文件中的行的顺序?

我想倒转文本文件(或标准input)中的行的顺序,保留每行的内容。 所以,即从以下开始: foo bar baz 我想结束 baz bar foo 有没有一个标准的UNIX命令行工具?

如何在Unix控制台或Macterminal上运行shell脚本?

我知道,忘记它,重新学习。 把时间写下来。

检查是否需要在Git中拉

如何检查远程存储库是否已经更改,我需要拉? 现在我使用这个简单的脚本: git pull –dry-run | grep -q -v 'Already up-to-date.' && changed=1 但是它相当重。 有没有更好的办法? 理想的解决scheme将检查所有远程分支,并返回更改分支的名称和每个提交的新数量。

给定两个目录树,我怎样才能找出哪些文件不同?

如果我想find两个目录树之间的差异,我通常只是执行: diff -r dir1/ dir2/ 这将正好输出相应文件之间的差异。 我感兴趣的是获取内容不同的相应文件的列表。 我认为这只是一个传递命令行选项来diff ,但是我在man page上找不到任何东西。 有什么build议么?

我怎样才能写一个heredoc Bash脚本中的文件?

如何在Bash脚本中将文档写入文件?

Shell命令tar目录不包括某些文件/文件夹

是否有一个简单的shell命令/脚本支持排除某些文件/文件夹被归档? 我有一个目录,需要存档一个子目录,有很多非常大的文件,我不需要备份。 不完全解决scheme: tar –exclude=PATTERN命令匹配给定的模式,并排除这些文件,但我需要特定的文件和文件夹被忽略(完整的文件path),否则有效的文件可能被排除在外。 我也可以使用find命令来创build一个文件列表,并排除那些我不想存档的文件,并将这个列表传递给tar,但是这只适用于less量的文件。 我有成千上万。 我开始认为唯一的解决办法是创build一个文件列表的文件/文件夹被排除在外,然后使用rsync和–exclude-from=file将所有文件复制到一个tmp目录,然后使用tar归档该目录。 任何人都可以想到一个更好/更有效的解决scheme吗? 编辑: cma的解决scheme运作良好。 最大的问题是–exclude='./folder' 必须位于tar命令的开头。 完整的命令(CD先,所以备份是相对于该目录): cd /folder_to_backup tar –exclude='./folder' –exclude='./upload/folder2' -zcvf /backup/filename.tgz .

统计git仓库中的行数

我如何计算git仓库中所有文件中的总行数? git ls-files给了我一个由git跟踪的文件列表。 我正在寻找一个命令来cat所有这些文件。 就像是 git ls-files | [cat all these files] | wc -l

如何声明和使用shell脚本中的布尔variables?

我尝试使用以下语法在shell脚本中声明一个布尔variables: variable=$false variable=$true 它是否正确? 另外,如果我想更新该variables,我会使用相同的语法? 最后,使用布尔variables作为正确expression式的语法如下: if [ $variable ] if [ !$variable ]

为什么有时在元字符周围需要空格?

几个月前,我在我的胳膊上刺了一个叉形炸弹 ,我跳过了空格,因为我觉得没有它们看起来更好。 但令我沮丧的是, 有时 (并非总是)当我在shell中运行它时,它并不会启动一个fork炸弹,但它只是给出了一个语法错误。 bash: syntax error near unexpected token `{:' 昨天发生了,当我尝试在朋友的Bash shell中运行它,然后我添加了空格,它突然工作, :(){ :|:& };:而不是:(){:|:&};: 空白是否重要? 我在arm上纹了一个语法错误?! 它似乎总是工作在zsh ,但不是在Bash。 一个相关的问题没有解释任何关于空格的问题,这实际上是我的问题。 为什么Bash需要空白才能正确parsing它?