回声命令像书的索引

回声命令像书的索引,第1张

概述回声命令像书的索引

我有一个脚本,可以修改目录中的所有文件,并在terminal中实时输出修改的状态,如下例所示:

Modifying Json.PHP... MODIFIED Modifying layout.PHP... ERROR Modifying a_very_long_named_file.PHP... NOT MODIFIED

我想知道是否有一些命令我可以使用回声像在一个有序的书籍的索引,如下所示:

Modifying Json.PHP..........................MODIFIED Modifying layout.PHP........................ERROR Modifying a_very_long_named_file.PHP........NOT MODIFIED

在windowsbatch file中打印多个variablesExpression式的值

什么是Bash Escape Character“ c”?

BASH后台进程打印消失提示行

在同一行Bash中回显多个variables

使用pipe道时的string *** 作等基本名称

如何回显“开”或“关”文字?

windows命令行pipe道一个stringgroovy

从windowsbatch file中向控制台回复一个空白(空)行

在linux中模拟Up Arrowbutton

为什么在batch fileIF块中不能使用@ECHO ON / OFF?

你可以用echo来做,我发现printf更令人满意:

printf "Modifying ...................................33[11G%s33[35G%sn" $filename ERROR

将从第11列开始打印文件名,并在第35列打印ERROR,其中…. 如果文件名太大,将会被部分覆盖。

要么:

如果“修改”后总是有一个空格,则可以尝试:

< input column -t | tr ' ' . | sed 's/./ /'

这要求所有的输出都可用,以便在产生任何数据之前确定最大宽度。 既然你说“实时”,这可能是不可取的,在这种情况下,你可以使用像这样的东西:

echo Modifying Json.PHP MODIFIED | perl -lane 'print "$F[0] $F[1]","...","." x ( 30 - length( $F[1] )),$F[2]'

打印33列宽的“….”(根据需要进行调整)。 如果任何文件名太长,那行就会太宽,但是除非您等待所有数据可用,否则确实无法确定所需的最大宽度。 (除非在开始之前您可以访问所有的文件名,选择一个合适的宽度。)额外的"..."在宽行上至少有一些点打印,而不是连接文件名和消息。

根据您的输入数据,下面的行可以工作:(需要gawk)

awk -F '\.\.\. +' -vd=50 '{x=sprintf("%-"d"s %s",$1,$2);gsub(/ /,"..",x);print x}' file

测试

kent$ cat s Modifying Json.PHP... MODIFIED Modifying layout.PHP... ERROR Modifying a_very_long_named_file.PHP... NOT MODIFIED kent$ awk -F '\.\.\. +' -vd=50 '{x=sprintf ("%-"d"s %s",x);print x}' s Modifying Json.PHP..................................MODIFIED Modifying layout.PHP................................ERROR Modifying a_very_long_named_file.PHP................NOT MODIFIED

注意

你把数字(在我的例子中是50)改成你想要的

gsub(..)部分有点冒险。 它将两个连接的空间更改为两个点。 但是我觉得这个问题不会太大,最后还剩下一个空间。 (之前错误/修改…)。

编辑

添加一个vim的解决方案,如果你觉得在vim中播放文本很舒服

键入set ve=all

删除三个点(…)后的空格:%s/. +/./g :%s/. +/./g

光标在第一行,键入qa$vT.x55|pF.v55|r.jq

那么20@a

所有的键入 *** 作都在代码块中,而不是实际上。 这将在20行中进行这种文本转换,如果你有很多行,你可以改变20到200或999。 这也会把你的“MODIFIED”等移到第55列。 你也可以更改号码。

如果你使用vim,它会看起来像:

你也可以这样做:

dots=................................................. echo Modifying $file ${dots:${#file}} $msg

这发送一个点的子串作为第三个参数回显,但不是标准的sh。 (以bash工作)

总结

以上是内存溢出为你收集整理的回声命令像书的索引全部内容,希望文章能够帮你解决回声命令像书的索引所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1271116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存