Articles of bash

更简单的方法来重复读取行和调用程序

我想反复读一行,并用行作为参数来调用一个程序,从而使一个非交互式的程序成为交互式的。 有没有比这更简单或更短的方式? while read line; do cowsay $line done

如何连接variables与Bash中的string?

我正在写一个bash脚本,我在下面的bash文件中使用了1个variables list=`/home/ea/students' 我在下面写了下面的链接,但是我得到了错误 cat $list /admin.txt 你知道我怎样才能连接variables和string?

用jq和引用值处理json数组

我试图编写一个脚本,对json对象数组做一些处理。 源json的简化版本看起来像这样。 请注意第二个对象中的转义双引号。 [ { "id": "1a-2b", "name": "my job name", "description": "my job description" }, { "id": "3c-4d", "name": "my \"quoted\" job name", "description": "my \"quoted\" job description" } ] 我的脚本目前尝试使用在我的search中find的“while read”成语来遍历源代码,如下所示。 while read job; do # fetch individual values into variables jobname=`echo $job | jq -r '.name'` # do processing on the individual […]

什么是最快的egrep

我需要从一个200万行的大型csv文件egrep,我想减lessegrep时间到0.5秒,这是可能的吗? 不,我不希望数据库(sqlite3或MySQL)在这个时候.. $ time wc foo.csv 2000000 22805420 334452932 foo.csv real 0m3.396s user 0m3.261s sys 0m0.115s 我已经能够将运行时间从40秒减less到1.75秒 $ time egrep -i "storm|broadway|parkway center|chief financial" foo.csv|wc -l 108292 real 0m40.707s user 0m40.137s sys 0m0.309s $ time LC_ALL=C egrep -i "storm|broadway|parkway center|chief financial" foo.csv|wc -l 108292 real 0m1.751s user 0m1.590s sys 0m0.140s 但我希望egrep实时不到半秒钟,任何技巧将不胜感激,文件不断变化,所以我不能使用任何caching机制…

bash Linux – 大量文件夹重命名

在我们的Linux文件服务器(RedHat Enterprise)上,我们有一些我们需要重命名的文件夹,这些文件夹中有客户端的工作。 旧的文件夹格式(需要更改的)是clientcode_jobnumberjobname 。 新格式是clientcode_jobnumber_jobname 。 我们基本上需要通过在jobnumber和jobname之间添加额外的下划线来更改旧的文件夹名称。 我们还将创build所有新的文件夹结构以新格式显示,因此不需要更改这些结构。 工作号码总是1个字母,后跟4个数字。 客户端代码是3-4个字母,具体取决于客户端。 每个工作的工作名称是不同的。 这些文件夹全部位于clients/clientname/jobs/clientcode/"folder that needs to be renamed" (只是脚本深入到结构中的示例)。 它将需要为每个客户端下的每个客户端clientcode执行此操作。 我将如何设置一个脚本来做到这一点? 任何帮助将大大apprciated。 我们有成千上万个需要重新命名的文件夹。

用shell查找pdf内部的string

我想知道是否有任何方法来检查是否有一个pdf文件中使用shell脚本的string? 我正在寻找像这样的东西: if [search(string,pdf_file)] > 0 then echo "exist" fi

在脚本中使用inotify来监视目录

我写了一个bash脚本来监视一个特定的目录“/ root / secondfolder /”脚本如下: #!/bin/sh while inotifywait -mr -e close_write "/root/secondfolder/" do echo "close_write" done 当我在“/ root / secondfolder /”中创build一个名为“fourth.txt”的文件并写入内容时,保存并closures它,输出如下内容,但不回显“close_write”: /root/secondfolder/ CLOSE_WRITE,CLOSE fourth.txt 有人能指出我的方向吗?

在linux中用batch file启动多个firefoxconfiguration文件

可以用firefox -P <profile-name> -no-remote启动不同的firefoxconfigurationfirefox -P <profile-name> -no-remote 但是,当我想同时在Linux中使用batch file启动多个configuration文件时,只有第一个configuration文件启动,并且后续configuration文件才会启动,直到退出前一个configuration文件。 目前我用这个批处理脚本不成功: #! /bin/bash firefox -P "profile 1" -no-remote firefox -P "profile 2" -no-remote firefox -P "profile 3" -no-remote 基本上, profile 1开始罚款,但profile 2不会启动,直到我先退出Firefox; 直到退出前一个命令才会执行。 在Windows中,我已经成功设法使用这个bat文件同时启动多个firefox: start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P "profile 1" start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -P "profile 2" start "" "C:\Program Files […]

在java程序的不同目录中运行Bash命令

程序说明: 我正在编写一个Java程序,其中当前目录是/ home / user / Desktop。 我想在“location / home / user / project /”中运行一个bash命令“du -s”来查找该文件夹的大小,以便我可以在我的项目中使用该文件夹的大小。 我不能发布整个代码,因为它有一些敏感的数据。 我只是张贴需要的代码。 这是我所做的: import java.io.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.File; public class Exec_in_cur_dir { public static void main(String[] args) { try { StringBuffer output = new StringBuffer(); String Command ="cd /home/user/project"; //Bash Command // […]

在linux上安排一个zenity消息

我想每天在特定的时间在Linux上创build一个简单的提醒。 我正在使用crontab来计划运行提醒脚本,而在脚本中,我正在使用zenity来显示一个简单的对话框的问题。 在更多的细节,我有以下脚本reminder.sh : #!/bin/bash zenity –question –text="question?" 然后,使用crontab -e ,我添加以下任务来运行每一分钟(仅用于testing): * * * * * /path/to/reminder.sh 但是对话框不出现。 我添加了一些其他命令的脚本,我确认脚本每分钟运行,但对话框仍然不出现! 任何提示?