Articles of bash

recursion地列出tar / zip档案的内容

我知道如何获得zip / tar文件的内容,例如: http : //www.if-not-true-then-false.com/2010/list-tar-tar-gz-tar-bz2-contents/ 但在我的情况:我想获得一个zip档案的所有内容。 ABCD.zip –>somefile.txt –>somezip.zip –>someother.tar 目标:我想要得到ABCD.zip的内容,以便我还能得到somezip.zip和someother.tar的更多内容,someother.tar也可能有其他一些拉链等。我怎样才能做到这一点与recursion? 可能用bash / perl脚本?

Linux读取空格和特殊字符

我想用空格和特殊字符来阅读,因为我需要使用该string的名称来删除文件。 我不知道如何处理“\”和读取空格。 我可能做错了。 while read LINE do for arg in $LINE do if [ "${args}" = "" ] then args="${args}" else args="${args}' '" fi args="${args}${arg}" done 我需要做一些像echo sadsad asddsa ;' dsasa | ./sth.sh | xargs -l rm -f echo sadsad asddsa ;' dsasa | ./sth.sh | xargs -l rm -f 我认为我需要将IFS设置为“|” 但它不能正常工作。 我需要读input结束调用它。 编辑:好吧,我想我只需要做一些与xargs和sed。 好吧,差不多我有一些错误,但我得到的文件名 […]

从文本文件中获取nu.nl的新闻标题

我想在文本文件中有nu.nl的新闻标题,以便我可以在我的bash脚本中使用它们。 我也想用bash脚本来提取这些标题。 我今天添加了nu.nl主页的屏幕截图( http://img.zgserver.com/linux/gS2mp.png )。 例如,我想在一个文本文件中: "Ook met Grieks referendum houdt Eurogroep vandaag nog overleg <br/> Koeweit pakt verdachten van aanslag op <br/> Ruim 4 op de 5 boetes voor te hard rijden <br/> … et cetera" 我正在Ubuntu 14.04.2 LTS上编程bash脚本(GNU / Linux 3.16.0-41-generic x86_64)

在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中间接地分配一个variables来从Standard In,File和执行输出中获取多行数据

我在这里和其他地方发现了许多片段,回答了这个问题的一部分。 我甚至设法以低效的方式在很多步骤中做到这一点。 如果可能的话, 我真的很想find执行这个任务的单行执行 ,而不是分配给一个variables,并复制它几次来执行任务。 例如 executeToVar () { # Takes Arg1: NAME OF VARIABLE TO STORE IN # All Remaining Arguments Are Executed local STORE_INvar="${1}" ; shift eval ${STORE_INvar}=\""$( "$@" 2>&1 )"\" } 总的来说,如果$ executeToVar SOME_VAR ls -l * #实际上会填充SOME_VAR和从其余参数中取出的ls -l *命令执行的输出。 但是,如果命令在最后输出空行,(对于例如- echo -e -n '\n\n123\n456\n789\n\n'应该在开始和结束处具有2个新行)这些被bash的子执行过程所剥夺。 我在其他类似的post中看到,通过在stream的末尾添加一个标记“x”来解决这个问题,例如将子执行转化为如下forms: eval ${STORE_INvar}=\""$( "$@" 2>&1 ; echo […]

如何让厨师重新加载全球path

我正在设置一个简单的厨师食谱来安装一个二进制应用程序。 在Ubuntu或者CentOS中没有这个软件包,所以我写了一个配方, 从源代码下载tar 从tar中提取内容 创build一个将app_home添加到全局$ PATH的bash脚本(它需要是全局的) 重新加载$ ​​PATH,以便当前login的用户可以在shell命令中引用它 我很好,第3步,但我不能让厨师重新加载$ ​​PATH。 我已经尝试在.bash_profile以及/etc/profile.d/放置新的导出PATH = $ PATH:/ path / to / app / bin ,但是没有成功。 如果我退出shell,并重新ssh我正确地看到PATH,但从来没有在同一个会话,当我跑sudo chef-client 。 有什么办法,厨师可以自动touch或重新加载PATH,使当前login的用户可以使用它?

将每个测序数据提取为单个文件

有一个ecoli.ffn文件,其中的行显示了测序基因的名称: $head ecoli.ffn >ecoli16:g027092:GCF_000460315:gi|545267691|ref|NZ_KE701669.1|:551259-572036 ATGAGCCTGATTATTGATGTTATTTCGCGT AAAACATCCGTCAAACAAACGCTGATTAAT >ecoli16:g000011:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042 GTGTACGCTATGGCGGGTAATTTTGCCGAT >ecoli16:g000012:55989:gi|218693476|ref|NC_011748.1|:1128430-1131042 GTGTACGCTATGGCGGGTAATTTTGCCGAT CTGACAGCTGTTCTTACACTGGATTCAACC CTGACAGCTGTTCTTACACTGGATTCAACC 如上所示,基因名称在第一和第二个结肠之间: g027092 g000011 g000012 我想使用ecoli.ffn生成三个文件: g027092.txt , g000011.txt , g000012.txt ,包含每个测序数据。 例如, g027092.txt将包含原始数据,但没有标题 : $cat g027092.txt ATGAGCCTGATTATTGATGTTATTTCGCGT AAAACATCCGTCAAACAAACGCTGATTAAT 如何做到这一点?

如何在Bash循环中增加一个date

我正在研究这个基本上在两个date上工作的函数。 一个是当前date,另一个是1个月前的date。 这里是代码: dateTale=$(date -d "$(date) – 1 month" +%Y%m%d) now=$(date +%Y%m%d) while ["$dateTale" -lt "$now"] do $dateTale=$(date -d "$dateTale + 1 day" +%Y%m%d) echo "adding" done 正如你可以看到我试图增加dateTale,直到它到达当前date,bu我继续得到错误消息:[20120703:命令没有find我试图从while语句中删除引号,但仍然是相同的错误消息。 但即使解决了,将计算实际date值或数字? 有什么build议?

Linux:终止一系列进程的最可靠的方法

如果我们假设:在Linux中终止一系列进程的最好方法是什么: 在我们开始清理之前,家庭中的任意进程可能会被杀死/终止; 结果,如果subprocess没有终止,他们的PPID将是1 进程可以更改进程组 我正在看的特定场景是Bash,但更一般的技术,更好。

为什么我的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 […]