标签: shell

Shell命令求和整数,每行一个?

我正在寻找一个命令,它将接受多行文本作为输入,每行包含一个整数,并输出这些整数的总和.

作为一个背景,我有一个日志文件,其中包括时序测量,所以通过grepping相关的行,并稍微sed重新格式化,我可以列出该文件中的所有时间.然而,我想计算出总数,而且我的思绪已经变得空白,因为任何命令我都可以将这个中间输出传递到最终总和.我过去总是使用expr它,但除非它运行在sed我认为它不会应付这个(即使那样它也会很棘手).

我错过了什么?鉴于可能有多种方法可以实现这一点,我将很乐意阅读(和expr)任何有效的方法,即使其他人已经发布了一个不同的解决方案来完成这项工作.

相关问题:在Unix上计算一列输出总和的最短命令?(来自@Andrew)


更新:哇,正如所料,这里有一些不错的答案.看起来我一定要进行sed更深入的检查expr!

shell

808
推荐指数
24
解决办法
52万
查看次数

在Bash脚本中获取当前目录名称(没有完整路径)

如何在bash脚本中获取当前工作目录名称,甚至更好,只需一个终端命令.

pwd给出了当前工作目录的完整路径,例如/opt/local/bin但我只想要bin

bash shell

765
推荐指数
15
解决办法
64万
查看次数

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

是否有一个简单的shell命令/脚本支持排除某些文件/文件夹被存档?

我有一个目录需要使用子目录进行存档,该子目录包含许多我不需要备份的非常大的文件.

不完全解决方案:

tar --exclude=PATTERN命令与给定模式匹配并排除这些文件,但我需要忽略特定文件和文件夹(完整文件路径),否则可能会排除有效文件.

我还可以使用find命令创建文件列表并排除我不想存档的文件并将列表传递给tar,但这仅适用于少量文件.我有成千上万.

我开始认为唯一的解决方案是创建一个文件,其中包含要排除的文件/文件夹列表,然后使用rsync --exclude-from=file将所有文件复制到tmp目录,然后使用tar来存档该目录.

谁能想到更好/更有效的解决方案?

编辑:cma的解决方案效果很好.最重要的是--exclude='./folder' 必须在tar命令的开头.完整命令(cd首先,所以备份是相对于该目录):

cd /folder_to_backup
tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
Run Code Online (Sandbox Code Playgroud)

linux shell tar archive

760
推荐指数
16
解决办法
82万
查看次数

使用grep --exclude/ - include语法不要浏览某些文件

我正在寻找foo=目录树中的文本文件中的字符串.它在一台普通的Linux机器上,我有bash shell:

grep -ircl "foo=" *
Run Code Online (Sandbox Code Playgroud)

在目录中还有许多匹配"foo ="的二进制文件.由于这些结果不相关并且减慢了搜索速度,我希望grep跳过搜索这些文件(主要是JPEG和PNG图像).我该怎么办?

我知道有--exclude=PATTERN--include=PATTERN选项,但模式格式是什么?grep的手册页说:

--include=PATTERN     Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN     Recurse in directories skip file matching PATTERN.
Run Code Online (Sandbox Code Playgroud)

搜索grep include,grep include exclude,grep exclude和variants没有找到任何相关内容

如果有一种更好的方法只在某些文件中进行grepping,我就是全力以赴; 移动违规文件不是一种选择.我不能只搜索某些目录(目录结构很乱,随处可见).另外,我无法安装任何东西,所以我必须使用常用工具(如grep或建议的查找).

unix shell search command-line grep

757
推荐指数
12
解决办法
61万
查看次数

给定两个目录树,如何找出哪些文件有所不同?

如果我想找到两个目录树之间的差异,我通常只执行:

diff -r dir1/ dir2/
Run Code Online (Sandbox Code Playgroud)

这准确地输出了相应文件之间的差异.我有兴趣只获取内容不同的相应文件列表.我假设这只是一个传递命令行选项的问题diff,但我在手册页上找不到任何内容.

有什么建议?

unix linux bash shell diff

743
推荐指数
7
解决办法
48万
查看次数

我应该放#!(shebang)在Python脚本中,应该采用什么形式?

我应该把shebang放在我的Python脚本中吗?以什么形式?

#!/usr/bin/env python 
Run Code Online (Sandbox Code Playgroud)

要么

#!/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

这些同样便携吗?哪种形式最常用?

注:龙卷风项目采用的家当.另一方面, Django项目没有.

python shell shebang python-3.x

741
推荐指数
10
解决办法
44万
查看次数

为什么"cd"不能在shell脚本中工作?

我正在尝试编写一个小脚本来将当前目录更改为我的项目目录:

#!/bin/bash
cd /home/tree/projects/java
Run Code Online (Sandbox Code Playgroud)

我将此文件保存为proj,添加了执行权限chmod,并将其复制到/usr/bin.当我通过以下方式调用它时 proj,它什么都不做.我究竟做错了什么?

linux shell

735
推荐指数
18
解决办法
59万
查看次数

计算git存储库中的行数

我如何计算git存储库中所有文件中存在的总行数?

git ls-files 给我一个git跟踪的文件列表.

我正在寻找cat所有这些文件的命令.就像是

git ls-files | [cat all these files] | wc -l
Run Code Online (Sandbox Code Playgroud)

git bash shell line-count

715
推荐指数
11
解决办法
31万
查看次数

在shell脚本中替换另一个字符串的子字符串

我有"我爱Suzi和Marry",我想把"Suzi"改为"Sara".

#!/bin/bash
firstString="I love Suzi and Marry"
secondString="Sara"
# do something...
Run Code Online (Sandbox Code Playgroud)

结果必须是这样的:

firstString="I love Sara and Marry"
Run Code Online (Sandbox Code Playgroud)

bash shell

701
推荐指数
12
解决办法
74万
查看次数

从命令行向'git commit -m'添加换行符

我从命令行使用Git,并尝试在提交消息(使用git commit -m "")中添加换行符而不进入Vim.

这可能吗?

git bash shell

693
推荐指数
14
解决办法
24万
查看次数

标签 统计

shell ×10

bash ×5

linux ×3

git ×2

unix ×2

archive ×1

command-line ×1

diff ×1

grep ×1

line-count ×1

python ×1

python-3.x ×1

search ×1

shebang ×1

tar ×1