小编Jus*_*ner的帖子

如何处理 x 列文本文件以获取 y 列?

我有一个文本文件:

a   aa  aaa     b   bb  bbb     c   cc  ccc
d   dd  ddd     e   ee  eee     f   ff  fff
g   gg  ggg     h   hh  hhh     i   ii  iii
j   jj  jjj
Run Code Online (Sandbox Code Playgroud)

我如何处理它并获得这样的 2 列文件:

a   aa
aaa b
bb  bbb
c   cc
ccc d
dd  ddd
e   ee
eee f
ff  fff
g   gg
ggg h
hh  hhh
i   ii
iii j
jj  jjj
Run Code Online (Sandbox Code Playgroud)

或者像这样的三列文件:

a   aa  aaa
b   bb  bbb
c   cc  ccc
d   dd  ddd
e   ee  eee …
Run Code Online (Sandbox Code Playgroud)

awk text-processing

17
推荐指数
3
解决办法
2722
查看次数

如何在awk regex中引用一个regex组?

如何在 awk regex 中引用正则表达式组?例如,如果我有一个正则表达式组(\w),我以后如何在同一个正则表达式中引用它(\w)\1?awk 支持这个功能吗?下面的例子不起作用。

# In this example, I want to change aa to aaa and cc to ccc.
echo ab aa cc de mn | gawk '{print gensub(/(\w)\1/, "\\1\\1\\1", "g")}'
# The result is: ab aa cc de mn
# The expected result is: ab aaa ccc de mn
Run Code Online (Sandbox Code Playgroud)

awk regular-expression

11
推荐指数
3
解决办法
9770
查看次数

Ubuntu 14 服务器版,如何启动到单用户模式?

我是 Linux 新手,只是对它有基本的了解。过去,我曾测试过,在某些 Linux 发行版中,只需将“single”附加到 boot 命令即可启动到单用户模式。但是,我不知道在 Ubuntu 14 中应该在哪里添加它,引导命令实际上是一个 shell 脚本。有人可以帮我吗?下面是我拍的一些截图。

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

boot grub2

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

是否有命令可以执行粘贴命令的相反操作?

paste命令可以将多行合并为一行。例如,如果我有一个文件test.txt并且它包含:

原文

a
aa
aaa
b
bb
bbb
c
cc
ccc
Run Code Online (Sandbox Code Playgroud)

我可以使用命令paste -s -d '\t\t\n' test.txt来获取:

处理结果

a   aa  aaa
b   bb  bbb
c   cc  ccc
Run Code Online (Sandbox Code Playgroud)

我想知道是否有反向命令可以执行粘贴的反向操作。例如,如果我有“处理结果”,我怎样才能得到“原始文本”?

text-processing paste

7
推荐指数
1
解决办法
3347
查看次数

这个 sed 结果中的最后一个换行符来自哪里?

我正在学习 sed 的不同命令并做了一些实验。我正在尝试的命令是:

root:[~]# seq 7 | sed -n '1~2H; 2~2{G;p}'
2

1
4

1
3
6

1
3
5
root:[~]#
Run Code Online (Sandbox Code Playgroud)

我分析了命令,对我来说,数字后面的最后一个换行符5不应该存在。下面是我的分析。

在此处输入图片说明

根据我的分析,输出应该是具有红色背景的单元格。如您所见,没有最后一个换行符。我哪里错了?提前致谢。

sed newlines

7
推荐指数
2
解决办法
303
查看次数

如何对不同的文本处理命令进行基准测试并找出最快的?

我有一个文本文件,我需要根据一些规则来处理它。为了完成任务,我可以使用多种方法。例如,我可以使用Linux命令cutpastesedawk等有多种方式来写由单个实用程序使用的命令。我想知道如何测试哪个选择更好。谢谢。

performance text-processing

6
推荐指数
1
解决办法
289
查看次数

在 awk 中,如何创建一个可以切换的布尔值?

在其他编程语言中,通常有一个boolorboolean类型。我可以创建一个布尔类型变量并使用not运算符来切换它。我可以多次切换它并获得一系列真,假,真,假......

在 awk 中没有布尔类型。只有空字符串和数字 0 被认为是假的。所有其他值均为真。在这种情况下,如果我想在第 1、3、5 行上执行操作 A 和在第 2、4、6 行上执行操作 B,我该怎么办……如果我们有一个布尔类型变量,那么任务将非常容易我可以简单的not

awk

5
推荐指数
1
解决办法
6645
查看次数

wget从文件列表中下载文件,如何为每个下载的文件指定名称?

下载单个文件时,我们可以使用wget的-O选项来指定文件名。当我使用(filelist.txt 包含我要下载的 URL 列表)下载文件中的 URL 时wget -i filelist.txt,如何构造 filelist.txt 以便每个文件在下载时被重命名?

例如,如果filelist.txt包含以下内容:

--output-document=1.jpg http://images2.example.com/image1.jpg
--output-document=2.jpg http://images2.example.com/image2.jpg
Run Code Online (Sandbox Code Playgroud)

是否可以下载image1.jpg并另存为1.jpg, image2.jpgas 2.jpg


编辑

我知道我可以使用简单的脚本或文本操作技术来创建多个 wget 命令,每个命令都会下载一个 URL 并写入一个输出文件。我还没有测试过,但这对我来说似乎较慢,我想知道是否有任何方法可以使用单个 wget 进程下载所有文件。

download wget filenames rename

5
推荐指数
1
解决办法
7668
查看次数

Gnu sed,p命令在打印时会附加换行符吗?

root@u1804:~# sed --version
sed (GNU sed) 4.5
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <https://www.gnu.org/software/sed/>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
root@u1804:~#
Run Code Online (Sandbox Code Playgroud)

我是 sed 的新手,我根据我的理解创建了下面的 sed 工作流程(如果您发现任何错误,请纠正我)。

在此输入图像描述

因此,模式空间的默认自动打印似乎总是在末尾包含换行符。我的问题是,willp …

sed

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

有没有办法计算文件中的文本行数,包括非分隔行?

POSIXwc命令计算文件中有多少 POSIX 行。POSIX 标准将一行定义为带有后缀的文本字符串\n。没有\n,纯文本字符串不能称为一行。

但对我来说,计算文件中有多少行文本字符串更自然。有没有简单的方法来做到这一点?

root:[~]# printf "aa\nbb" | wc -l
1
root:[~]# printf "aa\nbb\n" | wc -l
2
root:[~]#
Run Code Online (Sandbox Code Playgroud)

newlines wc line

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