标签: bash

如何让 bash 为文件名做类似 vim 的 tab 补全?

我希望 bash 轮换匹配的文件名而不是列出它们,就像 vim 中的默认选项卡完成行为。有没有一个简单的命令来做到这一点?这与这个问题本质上是相反的。

bash vim tab-completion

4
推荐指数
1
解决办法
2233
查看次数

如何开球到标准错误?(一个管道中有多个汇)

some_source | (tee /dev/stderr | sink_1) 2>&1 | sink_2
Run Code Online (Sandbox Code Playgroud)

好像失败了。

如何在没有任何临时性的情况下做到正确?

linux bash stderr tee

4
推荐指数
1
解决办法
1416
查看次数

BASH - 检查未命名管道是否为空

我的问题是,我想要一个从管道读取内容的脚本,检查它是否为空,如果不是则输出它,如下所示:

#!/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 是在这里使用的错误工具?

bash pipe

4
推荐指数
1
解决办法
7891
查看次数

如何在 Linux 中使用“ls -al”结果移动文件?

如何编写脚本以根据上次修改日期将文件从一个目录复制到另一个目录?

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}'。帮帮我,怎么样?

linux bash awk

4
推荐指数
1
解决办法
895
查看次数

除非模式变得更具体,否则查找会错过与 glob 模式的匹配

我曾经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

为什么会从第一种情况的结果中省略第二个结果?

linux bash find

4
推荐指数
1
解决办法
1509
查看次数

如何从文件路径列表中删除第一个点

我需要计算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)

如何从每行中删除第一个点?

bash

4
推荐指数
1
解决办法
3616
查看次数

按第 N 列中的字长排序

我有一个这样的列文件:

1 1 1 AKSDFJADFKASDJFAK
2 1 1 ADKLCJASDLKCJDLACKADCJLKDACJADS
3 1 2 AKLJDFHALKDJFHLKJSDKSDFHAKJFDHAKFHJAKFJ
Run Code Online (Sandbox Code Playgroud)

我想按第四列对条目进行排序,最长的单词在前。有什么建议?

bash gnu sorting

4
推荐指数
1
解决办法
1375
查看次数

永久更改 ls 的日期/时间格式

当我这样做时,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插入?

bash

4
推荐指数
1
解决办法
5433
查看次数

在 linux 中,我如何通过 shell 将 'quote' back-tic 转换为 sed。

在 linux 中,我如何从 char 中获取 ascii 十进制/十六进制/八进制代码或从十进制/十六进制/八进制代码中获取 ascii 字符。

我从gnu sed 用户手册中看到我可以使用 \d# \o# \x# 来指定一个字符,但我不确定如何使用它。

如果有人有更好的方法来获取 ` 和 ' 字符,请帮助

我想用反引号 '`' 字符和 ''' 单引号字符进行 sed。

sed '/`/p'

这些不起作用

sed '/\'/p'
sed '/`/p'

linux script bash sed ascii

4
推荐指数
2
解决办法
6622
查看次数

Linux shell:将 bz2 存档重新打包到 xz

如果我想保存文件的日期戳及其 chmod-chown 设置,如何将 .bz2 存档重新打包为 .xz 格式?

我可以使用任何标准工具和 xz、lzma、p7zip

bash bzip2

4
推荐指数
1
解决办法
3562
查看次数

标签 统计

bash ×10

linux ×4

ascii ×1

awk ×1

bzip2 ×1

find ×1

gnu ×1

pipe ×1

script ×1

sed ×1

sorting ×1

stderr ×1

tab-completion ×1

tee ×1

vim ×1