草庐IT

linux - 文件名包含空格的 Shell 脚本问题

我知道处理文件名中空格的一种技术是用单引号将文件名括起来:“'”。为什么以下代码调用“echo.sh”在包含带空格的文件名的目录上工作,但程序“ls.sh”不起作用,唯一的区别是“echo”被“ls”替换'?echo#!/bin/shforfin*doecho"'$f'"done产出:'abc''def''echo.sh''ls.sh'但是,“ls.sh”失败了:#!/bin/shforfin*dols"'$f'"done产出:ls:无法访问'abc':没有那个文件或目录ls:无法访问'def':没有那个文件或目录ls:无法访问'echo.sh':没有那个文件或目录ls:无法访问'ls

linux - 搜索多个文件时不要在 zgrep 输出中打印文件名

当我使用zgrep搜索多个.gz文件时,输出中包含文件名。有时我不需要它,因为我使用其他一些脚本来解析输出。我尝试使用“-h”选项,但它似乎不适用于zgrep。这是我使用命令的方式:admin@mybox[11:16:56]>zgrep-Eh"\.ERR|\.WARNING|\.FATAL"messages.?.gzmessages.1.gz:Oct1410:02:06.............................................messages.2.gz:Oct1409:27:58......................................

python - 添加文件名作为 CSV 文件的最后一列

我有一个Python脚本,它修改CSV文件以将文件名添加为最后一列:importsysimportglobforfilenameinglob.glob(sys.argv[1]):file=open(filename)data=[line.rstrip()+","+filenameforlineinfile]file.close()file=open(filename,"w")file.write("\n".join(data))file.close()不幸的是,它还将文件名添加到文件的标题(第一)行。我想将字符串“ID”添加到标题中。谁能建议我如何做到这一点?

linux - grep 和 sed 文件名中有空格

目前,我有grep-irl$schema$WORKDIR/|xargssed-i's/'"$schema"'/EXI1/gI'这不适用于带空格的文件名。任何想法,如何递归搜索和替换所有文件?谢谢 最佳答案 将-Z(又名--null)标志添加到grep,并将-0(也称为--null)标志到xargs。这将输出以NUL结尾的文件名,并告诉xargs读取以NUL结尾的参数。例如。grep-irlZ$schema$WORKDIR/|xargs-0sed-i's/'"$schema"'/EXI1/gI'

linux - 用于 sed 替换的转义文件名

我该如何解决这个问题:abc="a/b/c";echoporc|sed-r"s/^/$abc/"sed:-eexpression#1,char7:unknownoptionto`s'变量$abc的替换是正确的,但问题是$abc包含斜杠,这会混淆sed。我能以某种方式逃避这些斜杠吗? 最佳答案 请注意sed(1)允许您为s///分隔符使用不同的字符:$abc="a/b/c"$echoporc|sed-r"s|^|$abc|"a/b/cporc$当然,如果你走这条路,你需要确保你选择的分隔符没有在你输入的其他地方使用。

linux - 从 `find` 开始循环文件名?

如果我运行这个命令:sudofind.-name*.mp3然后我可以获得大量mp3文件的列表。现在我想循环处理每个mp3文件。例如,我可以创建一个while循环,并在内部将第一个文件名分配给变量file。然后我可以用那个文件做点什么。接下来,我可以将第二个文件名分配给变量file并使用它,等等。我如何使用linuxshell命令实现这一点?任何帮助表示赞赏,谢谢! 最佳答案 为此,使用内置的read:sudofind.-name*.mp3|whilereadfilenamedoecho"$filename"#...oranyothe

windows - Mercurial:Windows 和 Linux 之间文件名中的非 ASCII 字母问题

我在samba服务器上有一个中央Hg存储库和两个工作副本,一个在Ubuntu上,一个在Windows7机器上。一切正常,直到我错误地向项目添加了一个名称中包含俄文字母的文件。我已经在Linux中完成了。Mercurial很高兴地接受了它,并且在Linux中一切仍然有效。但是我发现我不能再将变更集拉到Windows。对于hgpull我得到pullingfrom...searchingforchangesaddingchangesetstransactionabort!rollbackcompletedabort:emptyormissingrevlogforfigures/interfD

对于非 ASCII 字符的文件名,Linux 未找到错误

简单地说,如果文件名中有特殊字符,我无法下载托管在我的网络服务器上的文件,因为我收到404。如果我创建一个名为olá.txt的文件,我似乎找不到正确的URL来下载它。我已经尝试了所有可能的下载方式:mydomain.com/olá.txtmydomain.com/ol%C3%A1.txt我总是从ApacheTomcat7.0.3收到404,但如果我将文件名更改为ola.txt,一切都很好。我已将AddDefaultCharsetutf-8添加到httpd.conf,但问题仍然存在。我的意思是应该可以下载名称中包含非ascii字符的文件,对吧?更新:我的server.xml有:更新:ec

linux - 在终端/Linux 上查找包含特定日期范围文件名的所有文件

我有一个监控摄像头,它根据我给定的条件捕捉图像。图像保存在我的Linux上。图片命名约定如下-CAPTURE04.YYYYMMDDHHMMSS.jpg该目录包含以下文件-CAPTURE04.20171020080501.jpgCAPTURE04.20171021101309.jpgCAPTURE04.20171021101913.jpgCAPTURE04.20171021102517.jpgCAPTURE04.20171021103422.jpgCAPTURE04.20171022103909.jpgCAPTURE04.20171022104512.jpgCAPTURE04.20171

linux - Bash脚本删除目录中多个文件名结尾的 'x'字符数量?

我在目录(/path/to/local)中有一个文件名列表。我想从所有这些文件名中删除一定数量的字符。示例文件名:iso1111_plane001_00321.moc1iso1111_plane002_00321.moc1iso2222_plane001_00123.moc1在每个文件名中,我希望删除文件扩展名前的最后5个字符。例如:iso1111_plane001_.moc1iso1111_plane002_.moc1iso2222_plane001_.moc1我相信这可以使用sed来完成,但我无法确定确切的编码。像...forfilenamein/path/to/local/*.m