Tag: bash

只能使用sed或awk从html页面中提取url的最简单的方法

我想从html文件的定位标记中提取URL。 这需要使用SED / AWK在BASH中完成。 没有perl请。 什么是最简单的方法来做到这一点?

如何将多行输出连接到一行?

如果我运行命令cat file | grep pattern cat file | grep pattern ,我得到很多输出。 如何将所有的行连接成一行,用"\n"有效地replace每个"\n" "\" " (以"后跟空格"\" "结尾)? cat file | grep pattern | xargs sed s/\n/ /g cat file | grep pattern | xargs sed s/\n/ /g不适合我。

如何在Bash脚本中使用virtualenv激活

你如何创build一个Bash脚本来激活一个Python的virtualenv? 我有一个目录结构,如: .env bin activate …other virtualenv files… src shell.sh …my code… 我可以激活我的virtualenv: user@localhost:src$ . ../.env/bin/activate (.env)user@localhost:src$ 但是,从Bash脚本执行相同的操作却什么也不做: user@localhost:src$ cat shell.sh #!/bin/bash . ../.env/bin/activate user@localhost:src$ ./shell.sh user@localhost:src$ 我究竟做错了什么?

在Bash的所有比赛中^ ^词^replace^?

为了澄清,我正在寻找一种方法来执行全局search并replace上一个使用的命令。 ^word^replacement^似乎只能取代第一场比赛。 是否有一些set选项,让我难以置信?

循环在bash中的元组?

是否有可能循环在bash的元组? 作为一个例子,如果下面的工作会很好: for (i,j) in ((c,3), (e,5)); do echo "$i and $j"; done 有没有一种解决方法,让我循环元组?

如何获得bc(1)打印前导零?

我在Makefile中做了如下的事情: echo "0.1 + 0.1" | bc (当然,在真实文件中,数字是dynamic的) 它打印.2但我想打印0.2 。 我想这样做,而不诉诸于sed但我似乎无法find如何让bc打印零。 或者是bc只是无法做到这一点?

并行运行几个脚本bash脚本

我有一个bash脚本,其中包含其他脚本内部运行的系列。 但是,它们需要花费相当多的时间才能运行。 有没有办法同时运行这些脚本来提高整体性能? 他们彼此独立。 它看起来类似于: #!/bin/bash #some code here cppcheck.sh churn.sh run.sh 更新: **git log –pretty=format: –numstat | perl -ane'$c{$F[2]} += abs($F[0]+$F[1]) if $F[2];END {print "$_\t$c{$_}\n" for sort keys %c}' > ${OUTPUT_DIR}/churn.txt** sed -i -e '/deps/d;/build/d;/translations/d;/tests/d' -e 30q ${OUTPUT_DIR}/churn.txt sort -r -n -t$'\t' -k2 ${OUTPUT_DIR}/churn.txt -o ${OUTPUT_DIR}/churn.txt echo "set term canvas size 1200, 800; set […]

检查目录中是否存在某个文件types/扩展名

你将如何去告诉特定扩展名的文件是否存在于一个目录中,用bash? 就像是 if [ -e *.flac ]; then echo true; fi

如何做一个“别名”的漫长道路?

我试图为shell脚本经常使用的path创build一个“别名”。 我尝试了一些,但失败了: myFold="~/Files/Scripts/Main" cd myFold bash: cd: myFold: No such file or directory 我如何使它工作? 不过, cd ~/Files/Scripts/Main作品。

Bash:将制表符分隔的文件行读入数组

我想将文件逐行读入脚本。 文件中的每一行都是由一个tab分隔的多个值,我想将每行读入一个数组。 典型的bash“逐行读取文件”示例; while read line do echo $line; done < "myfile" 对我来说,myfile看起来像这样(制表符分隔值); value1 value2 value3 value4 value5 value6 在循环的每一次迭代中,我希望每行都能进入一个数组,以便我能够 while read line into myArray do echo myArray[0] echo myArray[1] echo myArray[2] done < "myfile" 这将在第一次循环迭代中打印以下内容; value1 value2 value3 然后在第二个迭代中打印 value4 value5 value6 这可能吗? 我能看到的唯一方法是编写一个小函数来手动分离值,是否在bash中为此build立了支持?