标签: bash

何时使用 egrep 而不是 grep?

我现在正在准备 Linux 终端评估,我尝试了谷歌,发现大多数资源都指的是基本的“grep”而不是更强大的“egrep”——嗯,这至少是教授在讲座中所说的。

我总是在处理小样本,所以性能调优是一件很遥远的事情。

所以基本上我想知道是否有任何地方我必须切换到 egrep 才能以更好的方式做到这一点?现在使用基本的“grep”是否安全?会不会有潜在风险?

抱歉我对 Linux shell 命令的了解有限,手册页对我来说就像一个迷宫,老实说我没有花太多时间来理解这两个命令提供的所有功能。

linux bash

8
推荐指数
2
解决办法
8566
查看次数

bash 历史记录已附加,但 histappend 已关闭

我在 ubuntu 10.4 上,我的外壳是bash. 当我打开几个 gnome 终端并关闭它们时,历史记录被正确附加。当我进入时,shopt它说:

histappend      off
Run Code Online (Sandbox Code Playgroud)

谁能告诉我追加行为的配置位置?

bash ubuntu-10.04

8
推荐指数
1
解决办法
1995
查看次数

从命令行使用 OpenOffice 将 HTML 转换为 RTF

我正在尝试在 Cygwin 中构建一个 bash 脚本,它将 HTML 文件转换为 RTF。在 OS X 中,这对 来说是微不足道的textutils,但对于常规 Linux 或 Cygwin 来说并不存在。相反,我试图从命令行使用 OpenOffice。

我读过其他地方的OpenOffice可以正常安装的程序headlessly运行/usr/bin/ooffice,但在Cygwin的Windows下这显然是行不通的,OpenOffice的安装程序没有内置本地Cygwin的符号链接,并甚至可能没有安装Windows当量ooffice

如何从 Cygwin 的命令行使用 OpenOffice 将 HTML 文件转换为 RTF 文件?

cygwin bash openoffice conversion

8
推荐指数
2
解决办法
1万
查看次数

在 Ubuntu 中使用 Ruby shell 而不是 Bash shell?

在我看来,Ruby 的功能要强大得多,而且您还可以用它编写更强大的脚本。

是否有任何开源实现可以在 Ubuntu 上用 Ruby 替换 Bash,以便您可以使用 Ruby 而不是 Bash 命令。

就像 Ruby shell 而不是 Bash shell。

linux script bash ruby ubuntu

8
推荐指数
1
解决办法
3087
查看次数

bash 变量中的换行符

我的脚本包含如下内容:

ifc=$(ifconfig)
Run Code Online (Sandbox Code Playgroud)

有了这个,ifc变量包含命令的输出ifconfig但没有换行符。所以,当我用它打印时,echo $ifc我只得到一行。

如何包含子命令的换行符?

script bash shell newlines

8
推荐指数
1
解决办法
3044
查看次数

“外壳”和“终端”有什么区别?

我对 Ubuntu 还很陌生,我很喜欢它!

但是我不太明白shell和终端之间的区别。谁能解释一下?有人告诉我,终端只是查看外壳的“工具”,类似于使用 Firefox 或 Chrome 等浏览器“查看”网络。

他的比喻正确吗?另外Ubuntu的默认shell是什么?Bash、tcshell 或其他什么?

terminal bash shell

8
推荐指数
3
解决办法
5238
查看次数

cp -u 在 mac 上是非法的。有哪些替代方案?

我有一台 MacbookPro Lion,我尝试归档我的文件,如果源比目标新,我试图复制和覆盖这些文件。我尝试了以下命令

cp -u source destination
Run Code Online (Sandbox Code Playgroud)

但它说, -u 是非法的。我也没有在man cp.

你能帮忙吗,在这种情况下我该怎么办?

[我有问题从 SO 移到这里,所以请随时再次回答。我希望这是处理这个问题的正确方法]

unix bash osx-lion macos

8
推荐指数
1
解决办法
4476
查看次数

用 mtime - 和 + 找出不同之处

mtime's-+switch有什么区别,因为两者都没有带回我需要的结果?

我想删除所有超过 5 天的文件:

 find /mnt/sdb1/tmp/ -type f -mtime +5 -exec ls {} \;
 find /mnt/sdb1/tmp/ -type f -mtime -5 -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)

我已将输出更改为ls以比较结果。

linux bash find

8
推荐指数
1
解决办法
4万
查看次数

在单行 bash 别名中修剪尾随换行符

我正在尝试在 Mac OS X 终端上编写一个简单的别名来复制当前工作目录。我有这个:

alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""
Run Code Online (Sandbox Code Playgroud)

然后我可以运行以下命令来复制它:

$ cpwd
Run Code Online (Sandbox Code Playgroud)

问题是最后echo pwd包含换行符。所以当我粘贴它时,它会立即执行(如果粘贴在终端中)。

我想要做的就是去掉试用换行符,但我在互联网上找到的任何东西似乎都不适合我。看过涉及sed,awk和 的各种解决方案cut,但我不太明白。似乎很容易做到。

terminal bash whitespace newlines macos

8
推荐指数
1
解决办法
3989
查看次数

grep 计数多次出现

是否可以在一个命令中对文件中的多次出现进行 grep 计数?例如:

$ cat > file
blah alfa
beta blah
blah blahgamma
gamma
Run Code Online (Sandbox Code Playgroud)

我可以:

grep -c 'alfa' file 
1 
grep -c 'beta' file  
1
grep -c 'gamma' file  
2
Run Code Online (Sandbox Code Playgroud)

但是有可能像这样:

grep -c -e 'alfa' -e 'beta' -e 'gamma' -somemoreblackmagic file
Run Code Online (Sandbox Code Playgroud)

并获得每个人的计数?

alfa 1
beta 1
gamma 2
Run Code Online (Sandbox Code Playgroud)

bash grep

8
推荐指数
2
解决办法
2万
查看次数