Articles of bash

有一个具有相同名称但文件不同的文件的文件夹

我试图复制只有原始文件从一个目录到另一个,但一些文件具有相同的名称…我想用哈希比较文件,如果它不在目录中发送它那里,如果名称是相同的更改它到file_name.something。 在这个时候我得到一些文件和具有相同名称的文件被覆盖…任何人都可以提出一些build议吗? #!/bin/bash -xv source_folder=$1 destination_folder=$2 if [ $# -eq 0 ] then echo "usage:$0 directory_name";exit 999; fi if [ -d $source_folder ] then echo "source source_folder exists." else echo "Source folder doesn't exist" exit 1; fi if [ -d $destination_folder ] then echo "Destination folder exists" else mkdir $destination_folder fi find "$source_folder" -name "IMG_[0-9][0-9][0-9][0-9].JPG" […]

Bash,删除空的XML标签

我需要一些帮助几个问题,使用bash工具 我想从文件中删除空的XML标签,例如: <CreateOfficeCode> <OperatorId>ve</OperatorId> <OfficeCode>1234</OfficeCode> <CountryCodeLength>0</CountryCodeLength> <AreaCodeLength>3</AreaCodeLength> <Attributes></Attributes> <ChargeArea></ChargeArea> </CreateOfficeCode> 成为: <CreateOfficeCode> <OperatorId>ve</OperatorId> <OfficeCode>1234</OfficeCode> <CountryCodeLength>0</CountryCodeLength> <AreaCodeLength>3</AreaCodeLength> </CreateOfficeCode> 为此我已经这样做了 sed -i '/><\//d' file 这不是那么严格,更像是一个诡计,更合适的是find<pattern></pattern>并将其删除。 build议? 二,如何从: <CreateOfficeGroup> <CreateOfficeName>John</CreateOfficeName> <CreateOfficeCode> </CreateOfficeCode> </CreateOfficeGroup> 至: <CreateOfficeGroup> <CreateOfficeName>John</CreateOfficeName> </CreateOfficeGroup> 作为一个整体? 从: <CreateOfficeGroup> <CreateOfficeName>John</CreateOfficeName> <CreateOfficeCode> <OperatorId>ve</OperatorId> <OfficeCode>1234</OfficeCode> <CountryCodeLength>0</CountryCodeLength> <AreaCodeLength>3</AreaCodeLength> <Attributes></Attributes> <ChargeArea></ChargeArea> </CreateOfficeCode> <CreateOfficeSize> <Chairs></Chairs> <Tables></Tables> </CreateOfficeSize> </CreateOfficeGroup> 至: <CreateOfficeGroup> <CreateOfficeName>John</CreateOfficeName> <CreateOfficeCode> […]

Linux使用什么sorting?

我的Bash脚本正在文件夹中以字母数字顺序运行。 但事实certificate,这不是我在我的Mac OS文件夹中的顺序。 所以现在我想知道Linux使用什么sorting顺序,可以改变? 我可以改变它只为我的Bash脚本? 假设我想在Bash脚本中运行video播放器,按字母数字顺序运行文件夹中的所有video,我可以在脚本中指定它应该是什么字母数字顺序?

在bash中用多个小数sorting数字

在bash使用-n选项sort不会给我预期的结果。 $ cat numbers | sort -n 1.0 1.1 1.11.4 1.15 1.3 1.3.3 1.4-p1 1.6.1 2.2.10 2.2.2 2.4 2.4.6 我尝试使用-k1 , -k1.1n等( -k1.3n获取仅从1开始的数字的顺序)。 看来这里有一些非常基本的东西

BASH:从两个inputstream中读取的最佳体系结构

这里简单的脚本: a)不断从套接字读取数据并将其存储在关联数组中 b)不断从标准input读取值,如果它们已经存在于关联数组中,则响应t / f a&b是随机事件,不以任何方式关联。 诀窍是从两个subprocess访问数组(因为在后台放置一个进程会产生一个subprocess) 我正在考虑通过最好的策略,并且发生了一些想法,但是我想知道有没有人有更好的想法: 1)将input从套接字redirect到stdin作为subprocess,并在一个while循环中处理两个input(数据大小很小,<30个字符,所以我猜他们将保持primefaces?)。 2)读取套接字,然后读取具有小(0.1?)超时值的STDIN,以模仿非阻塞I / O。 3)更新:将套接字数据写入一个文件(实际上有另一个进程直接写入一个文件),然后每次请求进来检查值是否存在,处理文件中的条目,将它们添加到数组(使用文件locking)。

linux bash – 自定义格式的parsingdate

我有一个%c格式的date(可以是任何其他) ,我需要在date命令中使用它。 %c不是美国的格式。 这是德国的,因为它是德国的服务器。 这在美国服务器上也不能正常工作。 (设置为德语或美语的语言环境) 这不起作用(包括错误): user@server:~$ NOW=$(date +%c); echo $NOW Do 19 Dez 2013 22:33:28 CET user@server:~$ date –date="$NOW" +%d/%m/%Y date: ungültiges Datum „Do 19 Dez 2013 22:33:28 CET“ (date:ungültigesDatum“Do 19 Dez 2013 22:33:28 CET”= date: invalid date „Do 19 Dez 2013 22:33:28 CET“ ) 难点在于我不知道以后会使用哪种语言环境,甚至是什么格式,因为用户可以设置自己的格式。 所以一个简单的具体的parsing解决scheme并不是真正的工作! 但我该怎么做呢? 为了处理这个问题: 如果我有一个date格式format1 (可以是任何或至less一个可以颠倒),我可以使用date来获得格式化的date。 但是,如果我想格式化到另一个date( format2 […]

如何获得退出状态在bash循环

我知道如何使用$?来检查之前执行的命令的状态,并且我们可以使用exit命令来设置这个状态。 但是对于bash中的循环总是返回一个状态0,并且有什么办法可以打破一些状态的循环。 #!/bin/bash while true do if [ -f "/test" ] ; then break ### Here I would like to exit with some status fi done echo $? ## Here I want to check the status.

sed:在某个位置插入一条线

我只是环顾四周,但我没有find任何对我有用的东西。 我想插入一个新行(基本上是一个HTML表行)在其他行的顶部。 <table id="tfhover" class="tftable" border="1"> <tr><th>HEADER1</th><th>HEADER2</th><th>HEADER3</th><th>HEADER4</th></tr> <tr><td>Row:1 Cell:1</td><td>Row:1 Cell:2</td><td>Row:1 Cell:3</td><td>Row:1 Cell:4</td></tr> </table> 那么,有没有人可以build议我一个sed cmd将插入一个新的: <tr><td>Row:1 Cell:1</td><td>Row:1 Cell:2</td><td>Row:1 Cell:3</td><td>Row:1 Cell:4</td> 就在标题下方? 谢谢!

Bash,Linux,需要根据来自另一个文件的匹配内容从一个文件中删除行

在另一个文件中存在同一行时,如何删除一个文件中的行,有很多例子。 我已经通读了他们,如果全行匹配,他们全部删除。 例如: grep -vxF -f file1 file2 我所拥有的是稍有不同的。 我有我的网站和我的客户网站的url列表。 当域名与其他文件中的域名匹配时,我想从该文件中删除行。 所以第一个文件可能是这样的: http://www.site1.com/some/path http://www.site2.com/some/path http://www.site3.com/some/path http://www.site4.com/some/path 第二个文件可能是: site2.com www.site4.com 我想输出是: http://www.site1.com/some/path http://www.site3.com/some/path

Bash简化了数独

所以,我必须编写一个bash脚本来检查9×9“数独”解决scheme是否有效,但简化是我不必将它分成3×3,而是检查行和列是否包含任何重复的数字,有效数字只有1-9 .. 这是我的想法,但不能得到它的工作: #!/bin/bash error="false" count=0 #this would be for columns #for i in 1 2 3 4 5 6 7 8 9 #do #cat sudoku.txt | awk -F "\t" '{ print $'$i'}' | uniq -c | awk '$1 > 1 { count++ } END { print count }' #done #and this would be for […]