Articles of unix

了解BASH中的sorting命令

我正在尝试为了学习的目的对一个名为data的文件进行sorting。 它在我的教科书中给出。 5 27 2 12 3 33 23 2 -5 11 15 6 14 -9 Q1)这种情况下, sort data的顺序是什么? Q2)我正在一个文件夹中工作。 sort data工作,但sort +1n data不。 为什么? 我完全按照书中的方式input它,我得到这个错误 – sort: cannot read: +1n: No such file or directory 编辑 –本书想要跳过第1列并按第2列sorting。这就是为什么可以使用+ n。 我使用lubuntu 13学习unix bash脚本。 PS –这是sort data的输出 14 -9 15 6 2 12 23 2 3 33 […]

用两条新线代替一条线

我有一个名为abc.csv的文件,其中包含这6行: xxx,one yyy,two zzz,all aaa,one bbb,two ccc,all 现在,无论哪一条线都应该被one和two线取代,那就是: xxx,one yyy,two zzz,one zzz,two aaa,one bbb,two ccc,one ccc,two 有人可以帮助如何做到这一点?

如何总结与Bashdate

我需要以15分钟的时间间隔loggingdate和时间。 结果应该是这样的: 1376708400|2013-08-17 00:00:00 1376709300|2013-08-17 00:15:00 1376710200|2013-08-17 00:30:00 1376711100|2013-08-17 00:45:00 1376712000|2013-08-17 01:00:00 1376712900|2013-08-17 01:15:00 1376713800|2013-08-17 01:30:00 1376714700|2013-08-17 01:45:00 1376715600|2013-08-17 02:00:00 1376716500|2013-08-17 02:15:00 1376717400|2013-08-17 02:30:00 …等等…总共我应该有96行。 我现在最大的疑问是如何在15分钟内增加(或总计)分钟数,我试过了(原谅我的混乱,我还在学习): i=96 _incrementatime='+15 minutos' count=1 _Date=$(`date "2013-08-29 00:00:00"`) _dataEmSeg = `date -d "2013-08-29 00:00:00" +%s` while test $i -ne 0 do _VarData=$(`date –date="$_incrementatime*count"`) _exprt=$(expr `$_Date+$_VarData`) echo "$_dataEmSeg e $_exprt " […]

在C / * nix中检查指定用户的文件访问权限

这是我的问题。 我需要从FreeBSD上的C代码检查特定文件和特定用户的读取权限。 我写了一段代码: #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char *argv[]){ int r_ok; if(setuid(1002)){ printf("Cant's set uid\n"); exit(1); } r_ok = access("/tmp/dir", R_OK); printf("error: %d: %s\n", errno, strerror(errno)); printf("%d\n", r_ok); return 0; } 一般来说,它工作正常,但是当我设置/ tmp / dir的权限是这样的: d—rx— 2 root fruit1 512 Sep 10 18:20 /tmp/dir 程序输出 error: 13: Permission […]

学习Unix和C – 查看进程,文件和v节点表

我目前正在阅读关于Unix环境下高级编程的书中的进程表,文件表和V节点表。 为了帮助我理解,能够查看进程表,文件表和v节点表以及它们之间的关系是有用的。 我在编写和debuggingc代码时如何查看这些内部结构? 我试图用ps和ls的输出将内部结构信息拼凑在一起,勾画纸上的关系来形象化结构,但是这样做很慢。 互联网上似乎有很多关于查看进程表的post,但没有查看进程表,文件表和v节点表及其关系。

DbVisualizer.rpm不转换为.deb?

我正在使用最新版本的UBUNTU 12操作系统。我从这里下载了DbVisualizer.rpm。我试图通过使用follwing命令将.rpm转换成.deb格式来安装DbVisualizer $ sudo alien DbVisualizer.rpm 上述命令行生成以下错误消息, dpkg-gencontrol: error: syntax error in debian/control at line 11: continued value line not in field dh_gencontrol: dpkg-gencontrol -ldebian/changelog -Tdebian/dbvis.substvars -Pdebian/dbvis returned exit code 25 make: *** [binary-arch] Error 25 和DbVisualizer.rpm以外的所有都成功生成.deb。

pcregrep与多个捕获组

在pcregrep中的-oX选项有问题。 用不同的数字指定多个这样的选项只会输出最后指定的捕获组。 数据: docker ps | awk '{print $1}' | tail -n +2 | xargs docker inspect 输出: [{ "ID": "4e7f430263c33c25970134760ea96f9b57452680a8cfdf062270f5f7fe385135", …. #lots of additional lines "Ports": { "5000/tcp": [ { "HostIp": "127.0.0.1", "HostPort": "5000" } ], "5984/tcp": [ { "HostIp": "127.0.0.1", "HostPort": "5984" } ] } },{ #same as above, but with a different […]

gnuplot条件码解释

我知道 gnuplot> p 'filename' 会绘制图表 我想知道这个代码是如何运行的 gnuplot> p 'filename' u 10:(($3==4 && $9==1000)?$13:1/0) w lp

更聪明,更浓缩的方法来匹配shell脚本中的inputvariables?

我有一个包含众多独特项目的文件,在这个例子中我使用了用户ID。 我的脚本的起始部分应该向运行脚本的用户显示列表,并允许他们select其中一个ID。 然后,脚本应该交叉检查用户对原始文件所作的select,如果匹配,则应该提供一条build议匹配的消息并继续执行脚本。 如果不匹配,脚本应该build议用户并退出。 我目前的脚本确实如此,但我想知道是否有任何方法使它变得更智能/更浓缩,也许使用数组? 当前脚本: 这是我在这个网站上的第一篇文章,所以我对发布过程中发生的任何错误深表歉意。 FILE=testfile IDLIST="$(awk '{print $1}' $FILE)" echo "$IDLIST" echo "\nSelect one of the options" read input OUTPUT="$(for i in $IDLIST do if [[ $i = $input ]] then echo "Matched." fi done)" if [[ -z $OUTPUT ]] then echo "Invalid choice." exit 0 else ID=$input fi echo "It is […]

作业感知shell vs作业不知道程序的shell执行

当我读APUE v3时,更具体地说,我发现自己无法掌握一些东西。 首先,我们假设我在UNIX shell中运行下列pipe道程序: cat /etc/passwd | grep -i alex | awk -F : '{print $3}' | less 在第一个例子中,让我们假设我正在使用一个不知道shell的工作(sh) 这本书解释说,在这种情况下,最终ps -o pid,ppid,pgid,comm会是这样的(假设shell的pid是10,ppid是5) PID PPID PGID COMM 10 5 10 sh 11 10 10 less 12 11 10 cat /etc/passwd 13 11 10 grep -i alex 14 11 10 awk -F : '{print $3}' 在第二个例子中,让我们假设我们正在使用作业感知shell(bash): PID […]