相关疑难解决方法(0)

创建一个带参数的Bash别名?

我以前使用CShell(),它允许你创建一个带参数的别名.符号是这样的

alias junk="mv \\!* ~/.Trash"
Run Code Online (Sandbox Code Playgroud)

在Bash中,这似乎不起作用.鉴于Bash有许多有用的功能,我会假设这个功能已经实现,但我想知道如何.

bash alias

1164
推荐指数
18
解决办法
48万
查看次数

在Bash中将字符串拆分为数组

在Bash脚本中,我想将一行分成几部分并将它们存储在一个数组中.

这条线:

Paris, France, Europe
Run Code Online (Sandbox Code Playgroud)

我想将它们放在这样的数组中:

array[0] = Paris
array[1] = France
array[2] = Europe
Run Code Online (Sandbox Code Playgroud)

我想用简单的代码,命令的速度无关紧要.我该怎么做?

arrays bash split

577
推荐指数
12
解决办法
79万
查看次数

何时在shell变量周围包装引号?

有人能告诉我是否应该在shell脚本中包含变量的引号?

例如,以下是正确的:

xdg-open $URL 
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)

要么

xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?

unix linux bash shell quotes

145
推荐指数
4
解决办法
5万
查看次数

如何在bash中手动扩展一个特殊变量(ex:~tilde)

我的bash脚本中有一个变量,其值如下所示:

~/a/b/c
Run Code Online (Sandbox Code Playgroud)

请注意,它是未扩展的波形符号.当我对这个变量执行ls -lt(称之为$ VAR)时,我没有这样的目录.我想让bash解释/扩展这个变量而不执行它.换句话说,我希望bash运行eval但不运行evaluate命令.在bash中这可能吗?

我是如何在不扩展的情况下将其传递到我的脚本中的?我用双引号传递了围绕它的论点.

试试这个命令看看我的意思:

ls -lt "~"
Run Code Online (Sandbox Code Playgroud)

这正是我所处的情况.我想要扩展代字号.换句话说,我应该用什么来代替魔法来使这两个命令相同:

ls -lt ~/abc/def/ghi
Run Code Online (Sandbox Code Playgroud)

ls -lt $(magic "~/abc/def/ghi")
Run Code Online (Sandbox Code Playgroud)

请注意〜/ abc/def/ghi可能存在也可能不存在.

bash scripting tilde tilde-expansion

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

从bash中获取wc中的整数

有没有办法获得wc在bash中返回的整数?

基本上我想在文件名之后将行号和字数写入屏幕.

output: filename linecount wordcount 这是我到目前为止:

files=`ls`
for f in $files;
do
        if [ ! -d $f ] #only print out information about files !directories
        then
                # some way of getting the wc integers into shell variables and then printing them
                echo "$f $lines $ words"
        fi
done

bash wc

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

如何获得完整上下文的git diff?

如何创建适合在坩埚中检查的补丁?

git diff branch master --no-prefix > patch
Run Code Online (Sandbox Code Playgroud)

这只产生3行上下文.所以我做了以下几点

git diff --unified=2000 branch master --no-prefix > patch
Run Code Online (Sandbox Code Playgroud)

希望所有文件都少于2000行.有没有办法告诉git包含补丁文件中的所有行而不必指定最大行?

git diff git-diff

105
推荐指数
5
解决办法
4万
查看次数

如何从字符串中删除空格?

在ubuntu bash脚本中如何从一个变量中删除空格

字符串将是

   3918912k 
Run Code Online (Sandbox Code Playgroud)

想要删除所有空白区域.

bash shell

51
推荐指数
5
解决办法
18万
查看次数

Bash:提取字符串的一部分

说我有字符串"Memory Used:19.54M"我如何从中提取19.54?19.54将经常更改,因此我需要将其存储在变量中并将其与下一次迭代的值进行比较.

我想我需要一些grep和regex的组合,但我从来没有真正理解正则表达式..

bash

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

量化git diff的变化量?

我使用git有一个不寻常的目的 - 它在我写小说时存储我的文本.(我知道,我知道......太讨厌了.)

我试图跟踪生产力,并希望衡量后续提交之间的差异程度.作者对"工作"的代理是"写字",至少在创作阶段.我不能使用直字数,因为它忽略了编辑和压缩,这两者都是写作的重要部分.我想要跟踪:

 (words added)+(words removed)
Run Code Online (Sandbox Code Playgroud)

这将重复计算(单词改变),但我没关系.

键入一些神奇的咒语并让git报告任何两个修订版本的距离度量标准会很棒.但是,git diffs是补丁,即使你只是在线上捣乱了一个字符,也会显示整行.我不希望这样,特别是因为我的"行"是段落.理想情况下,我甚至可以用"单词"来指定我的意思(虽然\ W +可能是可以接受的).

是否有一个git-diff的标志,以逐字的方式给出差异?或者,是否有使用标准命令行工具来计算上述指标的解决方案?

git word-count

32
推荐指数
5
解决办法
5024
查看次数

从bash中的字符串中删除所有特殊字符和大小写

我正在编写一个需要解析文件名的bash脚本.

它将需要删除所有特殊字符(包括空格):"!?. - _并将所有大写字母更改为小写.这样的东西:

Some_randoM data1-A
More Data0
Run Code Online (Sandbox Code Playgroud)

至:

somerandomdata1a
moredata0
Run Code Online (Sandbox Code Playgroud)

我在许多不同的编程语言中看到了很多问题,但在bash中没有.有没有办法做到这一点?

regex linux bash shell parsing

23
推荐指数
4
解决办法
6万
查看次数

标签 统计

bash ×8

shell ×3

git ×2

linux ×2

alias ×1

arrays ×1

diff ×1

git-diff ×1

parsing ×1

quotes ×1

regex ×1

scripting ×1

split ×1

tilde ×1

tilde-expansion ×1

unix ×1

wc ×1

word-count ×1