Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。


1
来自管道的猫文件
我必须将文件连接到一个原始文件,该文件已拆分。有一个目录,其中有很多文件,但没有必要。我有md5sum文件,其中包含我必须加入的md5sum文件。 join -1 1 -2 1 tmp sumpos | sort -k2,2 | cut -d ' ' -f 3 | tr '\n' ' ' | xargs cat > result tmp - 排序的md5sum sumpos - 我在目录中找到的md5sum排序 这是一项来自研究的任务,我认为我们的讲师不想在这里使用xargs,所以这是一种没有xargs的方法吗?
1 bash  cat  join 

3
少输出到文件
在bash上,我尝试使用以下命令删除文件的最后3列: 头-n -3文件>文件 但是文件出来是空的。我可以绕过它,但是我想知道是什么原因造成的。 谢谢一群!

2
如何在Linux下通过命令行在相应命名的目录中组织文件
我有一个目录,里面充满了各种文件,它们的名称不同(即,没有使用特定的模式命名),并且具有不同的扩展名,我想将每个文件放在以每个文件命名的新创建的子目录中。在Linux下从命令行完成此操作的最佳方法是什么? 这听起来有点令人困惑,让我举个例子:让我们在目录中调用随机文件./filename.ext,我想将其放在名为的子目录中,./filename以便有效地使新路径为./filename/filename.ext。 我通过以下步骤进行了一些试验: 我已经在测试目录中创建了一些测试文件,从file-1.txt到file-9.txt,for num in {1..9}; do touch file-$num.txt; done 我创建了一个目录,该目录以每个文件名命名 for name in $(eval ls | cut -b 1-6); do mkdir $name; done 我已经将源文件移到它们各自的目录中, for name in $(eval ls | grep -e ".txt" | cut -b 1-6); do mv $name.txt $name/$name.txt; done 如您所见,此解决方案有效,但其巨​​大缺点在于,在这种情况下,它只能用于文件名长度较长且具有特定扩展名的文件。如果我有一些文件使用不同的名称和扩展名,那将毫无用处。cut我想在这里使用命令不是理想的解决方案,但是目前我还没有发现任何更好的方法。 另外,在移动/重新命名文件时自动找到子目录的方法也很酷,而不必mkdir以前使用(因此,当我ls实际重命名时,我不必担心排除新创建的目录) ); 但最终这是第二个问题。

1
bash范围的长度[重复]
这个问题已经在这里有了答案: 如何删除Linux中除10个最新文件以外的所有文件? 11个答案 我正在尝试使用一些命令删除目录中的某些文件。使用循环 for i in $(ls -tr $path); ... 我需要知道$(ls -tr $path) 如何在不使用一个循环的情况下获取目录$ path中文件数的长度 ? 真正的问题是删除文件夹中的文件。结果文件夹中最多只能包含10个最新文件。
1 bash  debian 

1
ffmpeg:找不到文件,但是显然可以访问
我正在犯一些非常愚蠢的错误,或者我偶然发现了一个非常奇怪的错误。我正在bash中,我想使用ffmpeg将.flac转换为.mp3。运行 ffmpeg -i 3\ -\ Thirty\ Seconds\ to\ Mars\ -\ Rescue\ Me.flac 3\ -\ Thirty\ Seconds\ to\ Mars\ -\ Rescue\ Me.mp3 会导致3 - Thirty Seconds to Mars - Rescue Me.flac: No such file or directory,尽管stat和ls都显示该文件具有当前用户的读取权限,我什至可以使用来查看其内容less。 我怀疑文件名有问题,所以我将文件重命名为asdf.flac,可以正常工作,但ffmpeg -i asdf.flac asdf.mp3仍然给我asdf.flac: No such file or directory。 为了排除权限问题,我已经做到chmod -R 777 .了使目录和所有文件在世界范围内可读写,但仍然没有机会。 有什么想法可能导致ffmpeg找不到文件,尽管它显然在那里?

3
bash中的原始多行字符串?
有没有办法在bash中获得未解释的字符串-它可以包含单引号和双引号以及Bang!等 我想做类似的事情 #!/bin/bash echo -e "Line One\nLine Two\nLine three" | python -c """ import sys for line in sys.stdin.readlines(): print "STDIN: %s" %line """ | awk '{print $2}' 问题是零STDIN:打印了行-stdin没有通过管道传递到python程序。 这是一个用例:请注意,输入大小可以是低GB的大小: 猫“ my10GBfile.dat” | python -c“”“ ..等 现在在那里使用HEREDOC #!/bin/bash echo -e "Line One\nLine Two\nLine three" | python<<-HERE some multiline python program …
1 bash  python 

2
SLURM允许作业使用的CPU数量超过启动请求的数量
我面临的SLURM问题可以总结如下。考虑一个bash脚本test.sh,该脚本请求8个CPU,但实际上使用10个CPU启动作业: #!/bin/sh #SBATCH --ntasks=8 stress -c 10 在具有32个CPU的服务器上,如果我用来启动此脚本5次sbatch test.sh,则其中的4个立即开始运行,最后一个显示为待处理,如squeue命令所示: JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 5 main test.sh jack PD 0:00 1 (Resources) 1 main test.sh jack R 0:08 1 server 2 main test.sh jack R 0:08 1 server 3 main test.sh jack R 0:05 1 server 4 …


5
用bash导航
我对在Macbook Pro上使用终端非常陌生,并试图了解如何使用它导航到某些目录。我似乎无法离开我的用户名目录。我正在尝试访问MAMP / htdocs,并将这些文件放入我的git存储库中。我是这一切的新手。 我正在打字并得到这个 David-Adamss-MacBook-Pro:~ davidadams$ cd Applications/MAMP/htdocs/barcodes -bash: cd: Applications/MAMP/htdocs/barcodes: No such file or directory 我需要从该行中取出“ davidadams $”,但我不知道如何导航。任何帮助都会很棒,谢谢
1 linux  git  bash  mamp 

2
如何知道哪个用户绑定了哪个端口?
如何获得正在监听的端口的列表以及绑定它们的用户名(在Linux上)? 最终,我希望在系统上有几个用户,这些用户被分配了2个端口供使用,并且可能不绑定任何其他端口。 我不知道该怎么做,但是,如果我有了正确的bash-fu组合,我应该能够得到上述列表,并定期检查哪些用户绑定到了哪个端口,以及是否有绑定用户应被锁定使用未分配的端口。

2
管道xargs不执行命令
我想监视nginx access.log中是否有格式错误的请求,并将此类情况通知自己。 为此,我编写了以下命令: tail -n0 -f access.log | grep --line-buffered '\{' | xargs sentry-cly -m 但是由于某种原因,该解决方案不起作用。如果我删除最后一个管道并仅以grep结尾-我将看到输出为日志文件获取新记录。 我不明白为什么不执行xargs。如果用cat或echo替换sentry-cli,它将是相同的。 您能说明为什么我有这种行为吗?

2
如何将此行输出到远程文件?
我正在使用bash shell并试图找出编写以下内容的正确方法: ssh mysuer@remotehost 'echo "update user set url = \'localhost\' where url = \'mydomain.com\';" >> /tmp/db.sql' 到目前为止,以上操作均无效。 按下回车键后,下面的一行是a >,好像我希望在某处关闭一个开放的报价。我需要怎么做才能做到这一点 update user set url = 'localhost' where url = 'mydomain.com'; 输出到远程文件?

1
同一商店有不同的环球行为吗?
我在同一台计算机上打开了多个shell(bash),在其中一个中,globbing似乎已停止。ls *给ls: *: No such file or directory,依此类推。我认为我一定是错误地设置了一些全局选项,但是shopt | grep glob给出了 dotglob off extglob off failglob off nocaseglob off nullglob off 和我其他的外壳一样。是什么原因造成的?
1 linux  bash  shell  globbing 

0
bash脚本是否可以替代cron作业或C守护程序?
我们的生产服务器遇到了cron问题。Cron设置为每5分钟执行一次,这在大多数情况下都有效,但是我遇到了一个问题,即作业可能需要6分钟才能处理。第二个6分钟的工作要等到10分钟后才能执行,这迟早会成为问题。 我已经研究过用C语言编写一个分叉守护程序来侦听传入的请求-但这也是有问题的,因为这将意味着编写另一个API端点并占用开发时间。 我发现了看似简单的解决方案,并且正在寻求批评/批评: 为简单起见,php CLI将根据是否有作业等待输出1或0: <?php echo "1" ?> bash脚本能够检查队列中是否有任何作业: #!/bin/bash var=$(php -f ../readPhpOutput/testOutput.php) if [ "$var" -eq "0" ] then echo "input zero" else echo "input not zero" fi sleep 10 另一个bash脚本与nohup一起运行,以确保上述脚本正在运行: #!/bin/bash while true do value=$(ps -A | grep [r]eadPhpOutput) echo "grep output is: $value" if [ -z …
1 linux  bash  script  cron 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.