Articles of unix

用基于匹配组的评估stringreplacestring(优雅的方式,而不是用于…)

我正在寻找一种方法来replace正则expression式匹配的文件的string与另一个string,这些string将从匹配的string中生成/评估。 例如,我想要replace此文件中的时间戳(时间戳+持续时间) 1357222500 3600 … Maybe intermediate strings… 1357226100 3600 … Maybe intermediate strings… … 由人类可读的date表示(date范围)。 到目前为止,我总是使用像Bash这样的shell脚本遍历每行,匹配X行,得到匹配的组string,并在处理后打印行,例如这样(从内存中): IFS=" " for L in `cat file.txt`; do if [[ "${L}" =~ ^([0-9]{1,10})\ ([0-9]{1,4})\ .*$ ]]; then # Written as three lines for better readability/recognition echo -n "`date –date=@${BASH_REMATCH[1]}` – " echo -n "`date –date=@$(( ${BASH_REMATCH[1]} + ${BASH_REMATCH[2]} […]

如何在这个目录中的每个文件中用“goodbye”replace单词“hello”,并且recursion地?

假设我在这个目录中有很多文件。 我想用“再见”来代替“你好”,也是recursion的

基于文件系统中的位置的Shell提示符

我必须在根文件系统下的三个主目录下工作 – home / username,project和scratch。 我想我的shell提示符显示我在哪些顶级目录。 这是我正在做的事情: top_level_dir () { if [[ "${PWD}" == *home* ]] then echo "home"; elif [[ "${PWD}" == *scratch* ]] then echo "scratch"; elif [[ "${PWD}" == *project* ]] then echo "project"; fi } 然后,我将PS1导出为: export PS1='$(top_level_dir) : ' 不幸的是,这不是我想要的。 我home :为我的提示,当我在我的家目录,但如果我切换到草稿或项目,然后提示不会改变。 我不明白bash脚本很好,所以我将不胜感激任何帮助来纠正我的代码。

有没有办法看到一个path的所有中间目录的权限..?

我有一个文件path..是否有任何单一的命令来查看path中的所有中间目录的文件/目录权限..?

使用单行命令删除目录

如何使用单个命令删除多个目录? 是否可以在一个class轮中完成? 如果是,请帮助。 /osmf/mgmt/scheduler>ls -lrt total 22 drwx—— 2 root root 12288 Mar 26 2009 lost+found drwxr-xr-x 4 ctmagent controlm 1024 May 24 2010 ctmagent drwxrwxrwx 3 edwprod edw 1024 Dec 1 09:53 edi drwxrwxrwx 120 edwprod edw 5120 Dec 27 09:37 edw /osmf/mgmt/scheduler> 我可以使用单个命令删除edi和edw吗?

&符号在csh的一行开头

在csh 开头的&符号是做什么的? 它似乎被忽略(没有错误信息),但为什么?

如何检查awk数组是否为空

我是全新的AWK,并试图确定如果我的数组是空的,所以我可以打印一条消息。 通常我使用长度函数,可以像这样检查,但似乎AWK没有那些。 这里是我的工作代码,我只是想打印出一个不同的消息,如果在parsing所有的数据后没有任何数组。 #add to array if condition is met if ($2 == "SOURCE" && $4 == "RESTRICTED"){ sourceAndRestricted[$3]++; } #print out array for (var in sourceAndRestricted){ printf "\t\t"var"\n" } 香港专业教育学院试图这样的事情,而不是工作。 build议? for (var in sourceAndRestricted){ if (var > 1){ printf "\t\t"var"\n" } else { print "NONE" } }

在没有root权限的情况下在Linux上获得硬盘序列号

标题基本概括了所有内容。 对于我的Java程序,我想在Linux中获得硬盘序列号。 最初我打算使用命令行“hdparm -i / dev / sda”,但后来我意识到这需要root权限,这是我不希望我的程序必须要求的,所以现在我正在寻找替代。 理想情况下,我宁愿不使用JNI,但是我不认为这很重要,如果应用程序已经为我写了,并获得了BSD之类的许可… 虽然我在这里,我也将欣赏Mac的解决scheme – 再次,不需要根/pipe理员权限! 提前致谢

如何将文件从X sub_dir移动到Y sub_dir

我有主DIR X和里面,我有许多子目录像A,B,C,D。 我有主要的目录Y和里面这个我有许多子目录与X主目录子目录像A,B,C,D相同的名称。 现在我只需要将X主dir子目录中的文件移动到Y主目录子目录。 例如: 在主目录X中,子目录A有100个文件 而B有1个文件 C有5个文件 和D有50个文件… 我的光标应该在主DIR X,从那里我需要将所有的子目录文件移动到Y主目录里面的同名的子目录(A,B,C,D)。 我怎么能在SHELL SCRIPTING(KSH​​)或unix中做到这一点?

/ proc / pid / loginuid中的一些uid是奇怪的

我正在分析unix / linux中的procfs,一些进程的loginuid真的很奇怪。 有些PID有一个很大的数字:4294967295。他们是守护进程还是系统事件,或者最近怎么回事? # cat /proc/11071/loginuid 4294967295