假设我有一个文件/from/here/to/there.txt ,并且只想得到它的dirname的最后部分而不是/from/here/to ,我该怎么办?
我想知道是否可以颜色突出显示与某些string匹配的shell命令的输出。 例如,如果我运行myCommand,输出如下: > myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有匹配^ ERROR \ s。*的行都高亮显示为红色。 同样,我想同样的突出显示应用于输出的grep,less等… 编辑:我可能应该提到,理想情况下,我想通过我的.bashrc中的“configuration文件”选项全球启用此function。
我有一个testing脚本,它有很多的命令,并会产生大量的输出,我使用set -x或set -v和set -e ,所以脚本会在发生错误时停止。 但是,要确定哪个线路执行停止以find问题还是很困难的。 有没有一种方法可以在每行执行之前输出脚本的行号? 或者在set -x生成的命令展示之前输出行号? 或者任何可以处理我的脚本行位置问题的方法将是一个很大的帮助。 谢谢。
我想输出一些数据到一个pipe道,并让另一个进程对数据行逐行进行操作。 这是一个玩具的例子: mkfifo pipe cat pipe& cat >pipe 现在我可以input任何我想要的东西,按下后立即看到同一行。 但是,如果用echo替代第二个pipe道: mkfifo pipe cat pipe& echo "some data" >pipe echo和cat pipe&完成后,pipe道closures,以便我不能通过pipe道传递更多的数据。 有没有办法避免closurespipe道和接收数据的进程,这样我就可以通过pipe道从bash脚本传递多行数据,并在到达时处理它们?
我需要一个快速的方法来找出给定的端口是否打开了Ruby。 我目前正在摆弄这个: require 'socket' def is_port_open?(ip, port) begin TCPSocket.new(ip, port) rescue Errno::ECONNREFUSED return false end return true end 如果端口是开放的,它的工作效果很好,但是它的缺点是偶尔会等待10-20秒,然后超时,抛出一个ETIMEOUTexception(如果端口closures)。 我的问题是这样的: 这个代码是否可以修改为只等待一秒(如果到那时我们什么都得不到的话,返回false )还是有一个更好的方法来检查一个给定的端口是否在一个给定的主机上打开? 编辑:调用bash代码也是可以接受的,只要它能够跨平台工作(例如,Mac OS X,* nix和Cygwin),尽pipe我更喜欢Ruby代码。
如何在sed的replace部分插入换行符? 此代码不起作用: sed "s/\(1234\)/\n\1/g" input.txt > output.txt 其中input.txt是: test1234foo123bar1234 和output.txt应该是: test 1234foo123bar 1234 但是我感到这个: testn1234foo123barn1234 注意: 这个问题特别是关于“sed”的Mac OS X版本,社区已经注意到它的行为与Linux版本不同。
我想要像这样在Bash中显示一个string I'm a student 当然你可以这样做 echo "I'm a student" 但是如何在string周围使用单引号来实现这一点?
我在这里做错了什么? 尝试匹配任何包含空格,小写,大写或数字的string。 特殊字符也不错,但我认为这需要转义某些字符。 TEST="THIS is a TEST title with some numbers 12345 and special char *&^%$#" if [[ "$TEST" =~ [^a-zA-Z0-9\ ] ]]; then BLAH; fi 这显然只testing上,下,数字和空格。 虽然没有工作。 *更新* 我想我应该更具体一些。 这是实际的代码行。 if [[ "$TITLE" =~ [^a-zA-Z0-9\ ] ]]; then RETURN="FAIL" && ERROR="ERROR: Title can only contain upper and lowercase letters, numbers, and spaces!"; fi *更新* […]
我经常想要对string进行sorting,以便在sorting例如abc_2, abc_1, abc_10 ,结果是abc_1, abc_2, abc_10 。 我所看到的每一种sorting机制都被sorting为abc_1, abc_10, abc_2 ,它们是从左边开始逐个字符的。 有没有任何有效的方法来获得我想要的结果? 看每一个angular色,确定它是否是一个数字,从随后的数字中构build一个子串,并将其作为一个数字进行sorting的想法,太惊人了。 没有大胡子* nix大师实现了一个替代版本的sort –sensible_numerical选项?
如何从bash脚本中检查Java是否可用(在PATH中或通过JAVA_HOME)并确保版本至less为1.5?