检查输出
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";'
Run Code Online (Sandbox Code Playgroud)
在文本编辑器(例如,vi)中显示以下内容:
^[[37mABC
^[[0m
Run Code Online (Sandbox Code Playgroud)
如何从输出文件中删除 ANSI 颜色代码?我想最好的方法是通过各种流编辑器来传输输出。
以下不起作用
perl -e 'use Term::ANSIColor; print color "white"; print "ABC\n"; print color "reset";' | perl -pe 's/\^\[\[37m//g' | perl -pe 's/\^\[\[0m//g'
Run Code Online (Sandbox Code Playgroud) 到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。
您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?
我试过了
rm -- -
rm "-"
rm "\-"
rm \-
Run Code Online (Sandbox Code Playgroud)
给了 Perl 一个机会
~$ perl -e '$junk = glob("-"); chomp $junk; print "$junk\n"; `rm $junk`;'
-
rm: cannot remove `-': No such file or directory
Run Code Online (Sandbox Code Playgroud)
...和...
~$ perl -e '$junk = glob("-"); chomp $junk; print "$junk\n"; `mv $junk newfile.garbage`;'
-
mv: cannot stat `-': No such file or directory
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,聪明的人。
我想在 vim 命令行上使用 perl 正则表达式。例如,要将当前行上的单词大写,您可以键入:
:s/(\w+)/\u$1/g
Run Code Online (Sandbox Code Playgroud) 我想通过蛮力缩小文件的大小,也就是说,我不在乎其余的,我只想将文件切成两半,然后丢弃其余的。
首先想到的是 Perl 的truncate。我正在关注该页面上的示例并做了完全相同的事情:
seq 9 > test.txt
ls -l test.txt
perl -we 'open( FILE, "< ./test.txt" ) && truncate( FILE, 8 ) && close(FILE);'
Run Code Online (Sandbox Code Playgroud)
但文件仍然具有相同的大小:
$ ls -lgG test.txt
-rw-rw---- 1 18 2013-08-08 09:49 test.txt
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这项工作?
我正在查找adduserand之间的区别useradd,解释是这useradd是一个命令,adduser而是一个 perl 脚本。我了解 perl 脚本是什么,但我不明白的是commandthen 到底是什么。
我一直以为,命令一样ls,ln,cd等都是写在任何语言中所有简单程序,简单地做一两件事。这些“简单程序”和 perl 脚本有什么区别?
我当然知道(perl)脚本不是编译而是在运行时解释,但我想这不是唯一的区别吗?
我确定有人有以下需求,按行拆分巨大的 .gz 文件的快速方法是什么?底层文本文件有 1.2 亿行。我没有足够的磁盘空间来一次对整个文件进行压缩,所以我想知道是否有人知道可以将文件(.gz 或内部 .txt)拆分为 3x 40mn 行文件的 bash/perl 脚本或工具. 即调用它像:
bash splitter.sh hugefile.txt.gz 4000000 1
would get lines 1 to 40 mn
bash splitter.sh hugefile.txt.gz 4000000 2
would get lines 40mn to 80 mn
bash splitter.sh hugefile.txt.gz 4000000 3
would get lines 80mn to 120 mn
Run Code Online (Sandbox Code Playgroud)
也许是在做一系列这些解决方案,或者 gunzip -c 需要足够的空间来解压缩整个文件(即原始问题): gunzip -c hugefile.txt.gz | 头 4000000
注意:我无法获得额外的磁盘。
谢谢!
当我在 Mac 上复制多个文件时,系统会尝试同时复制所有文件。问题是双重的。
首先,当您选择多个文件并复制它们时,它们都进入一个进程,采用“全有或全无”的方法,这与数据库中的 ACID 不同。这通常是不可取的。
此外,当您添加其他复制进程时,系统会尝试同时复制所有内容。
例如,我决定复制一个大文件A,然后我决定也复制一个大文件B。这导致两个并行复制操作,无论“大文件”之一是否也是许多文件的选择。
我不喜欢这个有几个原因:
结果:A我想首先传输和使用的文件到达所需的时间比需要的要长得多,并且当从 LAN 上的中央 HD 复制时,我无法使用第一个文件,直到所有其他文件也都到达为止。
因此...如何在 Mac 上排队复制多个文件?澄清一下:无论选择了很多文件,还是一一添加,我都希望它们都放入一个一次只复制一个文件的队列中,直到队列完成。
也欢迎使用 Bash,尤其是 Perl 来回答!
如何获取运行当前脚本的 perl 进程的进程 ID?getppid() 不返回与 ps -ea| 相同的 pid 格雷普。有没有一种简单的方法,或者我只是在我的脚本中运行 ps -ea 命令并修剪掉其他信息?
有没有一种简单的方法来打印所有非ASCII字符和它们使用命令行实用程序,如在文件中出现的行号grep,awk,perl,等?
我想将文本文件的编码从 UTF-8 更改为 ASCII,但在此之前,希望手动替换所有非 ASCII 字符实例,以避免文件转换例程影响的意外字符更改。