标签: perl

从文本流中删除 ANSI 颜色代码

检查输出

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)

regex perl awk sed

116
推荐指数
8
解决办法
9万
查看次数

何时使用 Bash,何时使用 Perl/Python/Ruby?

到目前为止,我们正在使用 Bash 编写所有脚本,但我开始觉得它有点傻。虽然我们当然可以用 Bash 做我们想做的一切(它非常强大),但我开始怀疑我们是否不应该使用适当的脚本语言(在我们的例子中很可能是 Ruby)。

您如何决定何时在脚本中使用 Perl/Python/Ruby 而不是 Bash?我认为使用 Ruby 的 init 脚本没有意义,但是添加电子邮件帐户的稍长脚本怎么样?

linux script bash perl ruby

83
推荐指数
7
解决办法
9万
查看次数

如何在 Linux 中删除名称看起来只是一个连字符的文件,如“-”

我试过了

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)

任何帮助将不胜感激,聪明的人。

linux bash perl

34
推荐指数
7
解决办法
4607
查看次数

我可以在 vim 命令行中使用 perl 正则表达式吗?

我想在 vim 命令行上使用 perl 正则表达式。例如,要将当前行上的单词大写,您可以键入:

:s/(\w+)/\u$1/g
Run Code Online (Sandbox Code Playgroud)

vim regex perl

29
推荐指数
4
解决办法
9456
查看次数

如何在 Linux 下将文件剪切到给定大小?

我想通过蛮力缩小文件的大小,也就是说,我不在乎其余的,我只想将文件切成两半,然后丢弃其余的。

首先想到的是 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)

我怎样才能使这项工作?

linux shell perl ubuntu

29
推荐指数
3
解决办法
3万
查看次数

命令与程序?

我正在查找adduserand之间的区别useradd解释是这useradd是一个命令,adduser而是一个 perl 脚本。我了解 perl 脚本是什么,但我不明白的是commandthen 到底是什么。

我一直以为,命令一样lslncd等都是写在任何语言中所有简单程序,简单地做一两件事。这些“简单程序”和 perl 脚本有什么区别?

我当然知道(perl)脚本不是编译而是在运行时解释,但我想这不是唯一的区别吗?

linux bash perl command-line

20
推荐指数
1
解决办法
5074
查看次数

unix - 按行拆分一个巨大的 .gz 文件

我确定有人有以下需求,按行拆分巨大的 .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

注意:我无法获得额外的磁盘。

谢谢!

linux unix bash shell perl

18
推荐指数
3
解决办法
2万
查看次数

如何在 Mac 上排队复制多个文件?

当我在 Mac 上复制多个文件时,系统会尝试同时复制所有文件。问题是双重的。

首先,当您选择多个文件并复制它们时,它们都进入一个进程,采用“全有或全无”的方法,这与数据库中的 ACID 不同。这通常是不可取的。

此外,当您添加其他复制进程时,系统会尝试同时复制所有内容。

例如,我决定复制一个大文件A,然后我决定也复制一个大文件B。这导致两个并行复制操作,无论“大文件”之一是否也是许多文件的选择。

我不喜欢这个有几个原因:

  • 当多个复制进程同时运行时,它似乎会使其他进程陷入困境。
  • 此外,当同时复制多个文件时,复制过程本身似乎要慢得多。
  • 最后,如果进程中止,则没有文件到达目的地。
  • 将文件添加到队列时,它也会立即开始复制,并进一步拖慢进程。
  • 当复制到(本地)网络上的其他机器或驱动器时,这是一个真正的问题。

结果:A我想首先传输和使用的文件到达所需的时间比需要的要长得多,并且当从 LAN 上的中央 HD 复制时,我无法使用第一个文件,直到所有其他文件也都到达为止。

因此...如何在 Mac 上排队复制多个文件?澄清一下:无论选择了很多文件,还是一一添加,我都希望它们都放入一个一次只复制一个文件的队列中,直到队列完成。

也欢迎使用 Bash,尤其是 Perl 来回答!

bash file-transfer perl macos

16
推荐指数
2
解决办法
2万
查看次数

获取当前 perl 脚本的进程 ID

如何获取运行当前脚本的 perl 进程的进程 ID?getppid() 不返回与 ps -ea| 相同的 pid 格雷普。有没有一种简单的方法,或者我只是在我的脚本中运行 ps -ea 命令并修剪掉其他信息?

perl

13
推荐指数
1
解决办法
3万
查看次数

如何从 shell 中识别非 ASCII 字符?

有没有一种简单的方法来打印所有非ASCII字符和它们使用命令行实用程序,如在文件中出现的行号grepawkperl,等?

我想将文本文件的编码从 UTF-8 更改为 ASCII,但在此之前,希望手动替换所有非 ASCII 字符实例,以避免文件转换例程影响的意外字符更改。

linux grep perl awk ascii

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

perl ×10

linux ×6

bash ×5

awk ×2

regex ×2

shell ×2

ascii ×1

command-line ×1

file-transfer ×1

grep ×1

macos ×1

ruby ×1

script ×1

sed ×1

ubuntu ×1

unix ×1

vim ×1