Articles of unix

如何使用'catdoc'显示utf-8编码的dock文件

我有很多docx文件,我想在terminal阅读。 我发现了catdoc http://www.wagner.pp.ru/~vitus/software/catdoc/ 当我使用它时,输出只是不可读的字符。 我的docx文件以utf-8编码。 我试过“catdoc -u my_file.docx”,但不起作用。 请帮忙。 非常感谢你。

如何通过unix中的数据来validation组的数量

我有一个logging列表如下 资源: a,yes a,yes b,No c,N/A c,N/A c,N/A d,xyz d,abc d,abc 输出: a, Yes 2 b, No 1 c, N/A 3 d, xyz 1 d, abc 2 c, N/A "File is not correct" 这里的“是”和“否”是可以接受的单词,如果其他的单词数大于单个$ 1值的“是”或“否”字数,那么我们发出一个类似“文件不好” 我已经尝试了下面的脚本 awk -F, '{a[$1]++;}END{for (i in a)print i, a[i];}' filetest.txt

在shell脚本中使用cd和cd命令是另一个目录中的一些计算的好方法

我在我的shell脚本中使用cd进入一个计算目录,并再次使用cd – 返回。 这是一个很好的使用方法吗? 我的脚本是: input_dir=/home/abc/2001/01/ cd $input_dir #Execute some programm with ifile.txt eg awk '$1 > 99 {printf "%.2f" "$1"}' ifile.txt > ofile.tx cd – 或者我们应该总是提到path名? 喜欢: input_dir=/home/abc/2001/01/ awk '$1 > 99 {printf "%.2f" "$1"}' $input_dir/ifile.txt > $input_dir/ofile.txt 你能否build议如果有什么简单的方法来减less文本?

为什么我的bash脚本在空的空间上打破?

我有一个shell脚本,正在打破虚拟主机和*之间的第42行的空间。 结果,唯一的东西是echo'd到控制台 <VirtualHost 我想要发生的是我的整个string被回显到控制台。 <VirtualHost *:80> DocumentRoot /Applications/MAMP/htdocs/web ServerName web.localhost <Directory /Applications/MAMP/htdocs/web> Options Indexes FollowSymLinks MultiViews +Includes AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 这里是我的脚本供参考: #!/bin/bash # This script should be used to automate the web site installation checkFileForString () { # $1 = file # $2 = regex # $3 = text […]

比较不同列的两个文件并打印不同的列

我想比较文件2的第二列与文件1的第一列。 如果它们相等,我想将file1的第二列添加到file2 ,如output.txt所示。 文件2 chr5 ENST00000514151 utr5 0 + chr5 ENST00000512281 utr5 0 + chr5 ENST00000512281 utr5 0 + chr5 ENST00000512281 utr5 0 + 文件1 ENST00000512281 a ENST00000504031 b ENST00000776348 c output.txt的 chr5 a ENST00000512281 utr5 0 + chr5 a ENST00000512281 utr5 0 + chr5 a ENST00000512281 utr5 0 + 我能够比较文件 awk 'NR==FNR{a[$1];next}$2 in a{print}' […]

Bash IP IF THEN ELSE声明

我需要从几台机器上运行一个脚本,但是每台机器都需要执行独特的命令。 我以为bash脚本能够做到这一点,但是我对这个部门不太了解。 我需要的代码看起来类似于下面的代码(或将它)。 我知道,这是远远不够完美或function,但它真的只是有助于expression我在找什么。 有人可以帮我用这个脚本? #/bin/bash IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17 If [$IP -eq 192.168.32.1] then mkdir IPFolder-1 more code… else if [$IP -eq 192.168.32.2] then mkdir IPFolder-2 more code… else if [$IP -eq 192.168.32.5] then mkdir IPFolder-5 more code…

运行shell脚本的不同方式之间的差异

最近我被问了一个问题。 执行shell脚本有哪些不同的方法,每种方法有什么区别? 我说我们可以在下面的方法中运行shell脚本,假设test.sh是脚本名称, sh test.sh ./test.sh 。 ./test.sh 我不知道1和2之间的区别。但是通常在前2种方法中,执行时会产生新的进程并运行相同的进程。 而在最后的方法,它不会产生新的进程。 相反,它运行在同一个。 如果我错了,有人可以更多地了解这一点,纠正我吗?

如何使用egrep列出符合正则expression式的单词?

我需要使用egrep来计算包含匹配正则expression式的string的单词。 例如,我需要做一些事情,比如“计算包含三个连续元音的字数”(不完全是这样,但这是它的要点)。 我已经想出了如何计算包含这些单词的行,但是当我添加-w标记时,我得到一个egrep: illegal option — w错误。 下面是我用来计算上面的场景中的行的正则expression式,这似乎工作: egrep -i -c '[aeiou][aeiou][aeiou]' full.html 在这个命令中使用-w标签会导致上面列出的错误,即使我在正则expression式附近添加了\ b标签。 例如: egrep -i -c -w '\b.*[aeiou][aeiou][aeiou].*\b' full.html 我究竟做错了什么? 编辑:我在Solaris 10上运行这个terminal。

查找和sorting目录

我需要find不超过30天的目录,然后按datesorting(从最新到最旧)。 这是我的命令: find /tmp/logs/ -maxdepth 1 -mindepth 1 -type d -mtime -30 问题显然是sorting部分:)

父和子代之间的文件描述符共享

在Unixnetworking编程中,有一个Pre-forked服务器的例子,它使用Unix域pipe道上的消息传递来指示subprocess处理一个传入的连接: for ( ; ; ) { rset = masterset; if (navail <= 0) FD_CLR(listenfd, &rset); /* turn off if no available children */ nsel = Select(maxfd + 1, &rset, NULL, NULL, NULL); /* 4check for new connections */ if (FD_ISSET(listenfd, &rset)) { clilen = addrlen; connfd = Accept(listenfd, cliaddr, &clilen); for (i = 0; […]