尝试创建 .gz 存档 - my_gz.gz - 并向其中添加多个文件:
$ gzip my_gz.gz file1.txt file12.txt
gzip: can't stat: my_gz.gz: No such file or directory
Run Code Online (Sandbox Code Playgroud) 我想重命名一些文件。我想我可以使用 xargs 来做到这一点。
find ./ -name "upload.log-*"
./upload.log-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180624.gz-20180626.gz
./upload.log-20180620.gz-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180621.gz-20180623.gz-20180625.gz-20180627.gz
find ./ -name "upload.log-*" -print | cut -d"-" -f-2
./upload.log-20180622.gz
./upload.log-20180624.gz
./upload.log-20180620.gz
./upload.log-20180621.gz
Run Code Online (Sandbox Code Playgroud)
我正在尝试以下操作,但似乎不起作用
find ./ -name "upload.log-*" | xargs -I '{}' sh -c "echo $1 $(echo $1 | cut -d"-" -f-2)" "{}"
Run Code Online (Sandbox Code Playgroud) 使用 tree 命令时,我想从输出中排除列表*.png和*.svg。问题是我尝试的每个括号扩展都不起作用。是因为树处理命令行参数的方式吗?
tree -I *.{svg,png}
tree -I '*.{svg,png}'
tree -I '{*.svg,*.png}'
tree -I '{*.svg,*.png}'
tree -I '*.{p,s}(v,n}g'
tree -I '*.{svg|png}'
Run Code Online (Sandbox Code Playgroud)
眼镜:
我有得到由2个不同版本的同一工具生成的项目2所TCL表示,让我们给他们打电话v1.tcl和v2.tcl
除了行的顺序之外,这些日志对于所有意图和目的在逻辑上通常是相同的。当我的项目的版本 1 和 2 相同时,每行都v1.tcl将在某处恰好出现一次v2.tcl。
我希望能够确定是否有人做出了v2.tcl需要向后移植的更改v1.tcl(或反之亦然)……换句话说,我只想看到不匹配的行。例如:
v1.tcl:
foo1
bar1
hello1
world1
Run Code Online (Sandbox Code Playgroud)v2.tcl:
hello1
bar1
foo2
world1
goodbye2
Run Code Online (Sandbox Code Playgroud)“差异”返回值:
file1:1 foo1
file2:3 foo2
file2:5 goodbye2
Run Code Online (Sandbox Code Playgroud)我应该写我自己的小脚本吗?有没有工具可以做到这一点?
我想根据它们的 MD5 值删除重复的文件。我已经在下面找到了脚本,但是如何修改它以使其递归运行?
因此,例如我有包含 3 个子文件夹 A B C 的文件夹
我希望 ./ ./A/ ./B/ ./C/ 中的所有文件检查它们的 md5 并相互比较,如果发现正匹配,则随机删除任一匹配。最终不再存在重复项。我不在乎哪个匹配首先被删除。
我希望我清楚地表达了我需要实现的目标,如果没有,请告诉我:)
#!/bin/bash
while true
do
echo "Enter the directory:"
read directory
if [ -d $directory ]; then
break
else
echo "Invalid directory"
fi
done
for FILE in `ls $directory`
do
if [ ! -f $FILE ]; then
break;
fi
h=`md5sum $directory/$FILE | awk '{ print $1 }'`
for f in `ls $directory`
do
if [ -f $f ] && [ $FILE != …Run Code Online (Sandbox Code Playgroud) 如何在目录中递归地找到所有带有大写扩展名的文件。
我试过了 :
$ find -name "*.[A-Z][A-Z][A-Z]"
Run Code Online (Sandbox Code Playgroud)
似乎有效,但当然这不会检查最后一个点后超过 3 个字母的文件。
很多时候我在两个目录之间工作。虽然很高兴能够
/working/dir/1 $ pushd /other/working/dir
/other/working/dir $ do something
/other/working/dir $ popd
/working/dir/1 $ do something else
/working/dir/1 $ pushd /other/working/dir
Run Code Online (Sandbox Code Playgroud)
如果 popd 调用压入/other/working/dir堆栈,那将是很好的,这样我就可以在两个目录之间来回调用 popd。
这样的事情可能吗?
我已经解决了所有类似的问题 + 安装了一些命令行实用程序,例如 duff,但没有成功。
在我的图像目录中,我有同名但具有不同扩展名(jpg 和 png)的图像。我只想打印具有不同扩展名的重复文件名的文件名。(例如 foo.jpg & foo.png) 或至少一个文件名 (foo)
到目前为止,我尝试了这些方法
find . -exec bash -c 'basename "$0" ".${0##*.}"' {} \; | sort | uniq
find . -type f \( -name "*.jpg" -o -name "*.png" \)
Run Code Online (Sandbox Code Playgroud)
这些命令中的大多数都会向我返回Nothing OR All the files OR unique filename but not the Duplicate those。
我有一个 cxomma 分隔的 csv,我想将其转换为自定义 html,并且我遇到了另一个执行此操作的脚本,但是自从我使用https://www.tutorialspoint.com/execute_bash_online以来,这对我来说只是问题.php来运行它。
这是我找到的脚本:https : //unix.stackexchange.com/questions/105501/convert-csv-to-html-table
我的问题是我的输出需要有点不同,而关于 ECHO 的一些东西真的是在抗争。所以这是我的清单的一个例子:
Product,100 usd 现在使用这个脚本我想把它转换成这样:Product 100 usd
基本上将列表分成 2 个单元格。但是 echo 不断剥离 "'s 所以它只是一团糟。我不知道是不是因为 bash 模拟器换行,但我不断收到错误,似乎假设 >< 和 tr 以及 td 是一个命令.
目前我的脚本看起来像这样,它反映了我对 echo.. 的困扰:
while read INPUT ; do
echo ""<tr onmouseover="this.style.backgroundColor='#ffff66';"";
echo ""onmouseout="this.style.backgroundColor='#d4e3e5';>";
echo ""<td>${INPUT//,/</td><td><b>}</b></td></tr>";""
done
Run Code Online (Sandbox Code Playgroud)
这会产生:
$bash -f main.sh
main.sh: line 2: tr: No such file or directory
main.sh: line 4: ;
echo <td>six</td><td><b>nine</td><td><b>twelve</b></td></tr>: No such file or directory
main.sh: line 4: : …Run Code Online (Sandbox Code Playgroud) 我很想知道为什么我的脚本在 Windows 子系统 linux 下不能按预期工作。
我的商店版本:(Debian GNU/Linux 9.6 (stretch)我也试过 ubuntu,结果相同)
我的 bash 版本: GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
这是我的基本脚本,仅用于显示问题:
PROJECT_ENV="development"
echo $PROJECT_ENV
compose_file="docker-compose.${PROJECT_ENV}.build.yml"
echo $compose_file
Run Code Online (Sandbox Code Playgroud)
它输出:
.build.ymlpose.development
Run Code Online (Sandbox Code Playgroud)
据我了解,该输出对我来说没有任何意义,我尝试重新安装 bash 但我仍然遇到同样的问题。