我希望 bash 轮换匹配的文件名而不是列出它们,就像 vim 中的默认选项卡完成行为。有没有一个简单的命令来做到这一点?这与这个问题本质上是相反的。
some_source | (tee /dev/stderr | sink_1) 2>&1 | sink_2
Run Code Online (Sandbox Code Playgroud)
好像失败了。
如何在没有任何临时性的情况下做到正确?
我的问题是,我想要一个从管道读取内容的脚本,检查它是否为空,如果不是则输出它,如下所示:
#!/bin/bash
var=$(cat -)
if [ -n "$var" ]
then
echo "$var"
else
echo "Pipe was empty"
fi
Run Code Online (Sandbox Code Playgroud)
问题是,如果管道为空,则 cat 从 stdin 读取。有什么办法可以防止猫这样做吗?或者 cat 是在这里使用的错误工具?
如何编写脚本以根据上次修改日期将文件从一个目录复制到另一个目录?
ls -al
-rw-R - R-- 1个用户的用户100 2011-05- 26 12点33 ABC1234 _frontcover_10344000_2011-05.doc
我到底想要做的是,使用 ls -al 结果的上述粗体部分ABC1234_frontcover_10344000_2011-05.doc应该将文件复制到/home/abcd/ABC1234/2011-05/26/.
应该有一些方法可以使用date -r $file +%mand 的值来做到这一点basename *.doc | awk -F_ '{print $1}'。帮帮我,怎么样?
我曾经find在我的机器上搜索一个文件,如下所示:
find / -name version-1.0.*
Run Code Online (Sandbox Code Playgroud)
结果是我的主目录中只有一个文件version-1.0.23. 但是,如果我运行以下命令:
find / -name version-1.0.1*
Run Code Online (Sandbox Code Playgroud)
结果是/data/somelongpath/version-1.0.19。
为什么会从第一种情况的结果中省略第二个结果?
我需要计算ls转储中每行一个字符串的 md5sum :
directory_listing.txt:
./r/g4/f1.JPG
./r/g4/f2.JPG
./r/g4/f3.JPG
./r/g4/f4.JPG
Run Code Online (Sandbox Code Playgroud)
但是 md5sum 应该在没有“第一个点”的情况下计算。到目前为止,我已经编写了一个简单的脚本:
while read line
do
echo $line | exec 'md5sum'
done
./g.sh < directory_listing.txt
Run Code Online (Sandbox Code Playgroud)
如何从每行中删除第一个点?
我有一个这样的列文件:
1 1 1 AKSDFJADFKASDJFAK
2 1 1 ADKLCJASDLKCJDLACKADCJLKDACJADS
3 1 2 AKLJDFHALKDJFHLKJSDKSDFHAKJFDHAKFHJAKFJ
Run Code Online (Sandbox Code Playgroud)
我想按第四列对条目进行排序,最长的单词在前。有什么建议?
当我这样做时,ls -l我得到
-rw------- 1 nifle None 17K Jul 15 01:48 .bash_history
-rwxr-xr-x 1 nifle None 1.2K Feb 9 2010 .bash_profile*
-rwxr-xr-x 1 nifle None 3.7K Mar 22 10:03 .bashrc*
-rwxr-xr-x 1 nifle None 3.7K Feb 9 2010 .bashrc~*
drwxr-xr-x+ 1 nifle None 0 Mar 6 17:31 .cpan/
drwxr-xr-x+ 1 nifle None 0 Jan 3 2011 .emacs.d/
<snip>
Run Code Online (Sandbox Code Playgroud)
如何让日期/时间格式始终被YYYY-MM-DD HH:MM插入?
在 linux 中,我如何从 char 中获取 ascii 十进制/十六进制/八进制代码或从十进制/十六进制/八进制代码中获取 ascii 字符。
我从gnu sed 用户手册中看到我可以使用 \d# \o# \x# 来指定一个字符,但我不确定如何使用它。
如果有人有更好的方法来获取 ` 和 ' 字符,请帮助
我想用反引号 '`' 字符和 ''' 单引号字符进行 sed。
sed '/`/p'
这些不起作用
sed '/\'/p'
sed '/`/p'
如果我想保存文件的日期戳及其 chmod-chown 设置,如何将 .bz2 存档重新打包为 .xz 格式?
我可以使用任何标准工具和 xz、lzma、p7zip