Articles of shell

如何仅在重复行的末尾添加连续数字

我有一个重复行的文件。 我只想在这些重复的结尾放一个连续的数字。 例。 input: Jose da Silva Jose da Silva Fulano de Tal Jose da Silva Sicrano Pereira Ze Ruela Sicrano Pereira Jose da Silva 输出: Jose da Silva #1 Jose da Silva #2 Fulano de Tal Jose da Silva #3 Sicrano Pereira #1 Ze Ruela Sicrano Pereira #2 Jose da Silva #4 我不能sorting这些线。 他们必须以相同的顺序出现。

用bash通配符定位行为

我有 $ ls -l re*trict ls: cannot access re*trict: No such file or directory 为什么这给0比赛? $ locate -c 're*trict' 0 $ locate -c re*trict 0 $ locate -c re?trict 0 这虽然工作,并给予8351匹配: $ locate -c restrict 8351

用反向引用在两个模式之间加上所有行

我正在做一个简单的脚本,以预先匹配匹配之间所有行的模式匹配的一部分。 例如: matchline_VAR name1 xxx yyy zzz name2 aaa bbb ccc matchline_VAR 需要成为(如果简单删除matchlines,如果不是我可以后处理删除它们): VAR_name1 xxx yyy zzz VAR_name2 aaa bbb ccc 现在我正在尝试像这样: sed '/matchline_\(.*$\)/,/matchline_/ {s/^/\1_/g}' 而是在行前打印1。 也许我还应该提到,这是一个更大脚本的一部分,用于search文本文件,并用另一个shellvariables$ replace(多行)replaceshellvariables$ find(一行)的每个实例。 目前的解决scheme是: awk -v find="$find" -v replace="$replace" '$0==find{$0=replace}1' file 问题是,我需要将$ find的第一个字段追加到$ replace的每一行我试过: awk -v find="$find" -v replace="$replace" '$0==find{$0="matchline_" $1 "_" replace}1' 但是它只在多行$ replace的开头附加名称。 任何帮助表示赞赏, 约翰

如何从Linux shell中的文件中的二维数组中select一个元素

我是新的shell脚本,我需要的是从包含2d数组的文件中读取。 假设有一个名为test.dat的文件,其中包含以下值: – Paris London Lisbon – Manchester Nurnberg Istanbul – Stockholm Kopenhag Berlin 在Linux bash脚本中从这张表中select一个元素最简单的方法是什么? 例如,用户input-r 2 -c 2 test.dat,这意味着select在行[2]和列[2](Nurnberg)的元素。 我已经看到了读取命令和谷歌search,但大部分的例子是关于1D数组。 这个看起来很熟悉,但是完全不能理解。

nohup每天创build新文件nohup.out

我不知道我能不能用nohup来做,但这是个问题….我有这个命令: nohup java -XX:MaxHeapFreeRatio=70 -Xmx2048M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof -jar $iscsiJar & 我希望当天改变我保存的前一天nohupYYYYMM01.out并创build另一个文件nohupYYYYMM02.out,当然,与出杀我的过程。 =) 是否有可能,我怎么编程在shell脚本? 非常感谢!

shell脚本将数据parsing为variables,然后更新数据库

我的networking上有一个设备将数据发布到html页面。 我需要能够从页面收集数据并将其插入到我的数据库中,以便我可以对数据进行历史参考。 我能够使用以下命令从网站中检索字段。 结果返回由换行符分隔的三个数字。 我想运行这个作为一个Linux的cron作业,所以我想用一个Linux脚本来: 将数据(数字)保存到variables中 连接到我的数据库,并将数据插入表中 我的命令行检索信息如下。 这对parsing设备中的数据非常有用: curl -s http://local_device.com/dtm.html?address=C5:0 | grep -Po '[0-9]+(?=[^0-9]+(C5:2<|C5:6<|C5:13))'

在busybox sh中,不能递增填充8的数字

这是我用来保存照相机文件的代码,并从0001开始命名。 相机正在运行Busybox,并且里面有一个灰壳。 代码是基于查尔斯·达菲在此之前的回答。 #!/bin/sh # Snapshot script cd /mnt/0/foto sleep 1 set — *.jpg # put the sorted list of picture namefiles on argv ( the number of files on the list can be requested by echo $# ) while [ $# -gt 1 ]; do # as long as there's more than one… shift […]

如何通过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

ssh从php访问ec2

从本地ubuntu linux机器通过ssh连接ec2机器访问。 当我从terminal运行这个PHP脚本它执行得很好,并在文件中写入尾部的条目。 当我从浏览器运行得到这个错误在Apache错误日志 ssh:无法parsing主机名称proxy2:名称或服务未知 发现它由于Apache用户权限问题。 不pipe我的猜测是对还是错,我都不确定。 任何人都可以帮助我解决这个问题。 php代码: – <?php $ss = 'ssh proxy2 '.'tail -n 3 /out/speed_log.txt.1'.' > proxy2temp1'; system($ss); ?>

在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文本?