标签: text-processing

仅将 sed 操作应用于以特定字符串开头的行

我有以下文件格式

Received from +11231231234 at 2021-10-10T19:56:50-07:00:
This is a message that contains words like from, at, etc.

Sent to +11231231234 at 2021-10-11T06:50:57+00:00:
This is another message that contains words like to, at, etc.
Run Code Online (Sandbox Code Playgroud)

我想清理“已接收”和“已发送”行,以下 sed 命令可以实现此目的

cat file |  sed 's/from//g' | sed 's/to/    /g' | sed 's/+\w\+//' | \ 
sed 's/at//g' | sed 's/T/ /g' | sed 's/[[:digit:].]*\:$//' | \ 
sed 's/[[:digit:].]*\:$//' | sed 's/-$//' | sed 's/-$//' | sed 's/+$//'
Run Code Online (Sandbox Code Playgroud)

并产生以下结果

Received    2021-10-10 19:56:50
This is a message …
Run Code Online (Sandbox Code Playgroud)

command-line sed text-processing

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

有什么方法可以在文件中搜索超过 100 天的正常运行时间吗?

有什么方法可以通过 Linux Bash 命令在文件中搜索大于 100 天的正常运行时间吗?

例如,file1包含:

Uptime is 172 days

Uptime is 562 days

Uptime is 30 days

downtime is 197 days
Run Code Online (Sandbox Code Playgroud)

我可以使用什么命令来获得如下输出:

Uptime is 172 days

Uptime is 562 days
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

将每个文本文件的名称附加到文件的最后一行

我有十个文件:firstFile.txt,...,tenthFile.txt

在文件的最后一行,我想附加文件名。

即对于第一个,最后一行将是firstFile

我想用一行代码执行此操作。

我是个新手,所以不知道该尝试什么,我的猜测是这样的echo * >> *.txt,但并不感到惊讶,因为它不起作用

scripts text-processing 20.04

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

尝试用脚本取消注释无人值守升级行,需要帮助

我最近开始在一家全 Linux 公司担任 IT 人员,并注意到我们所做的一些任务可以“轻松”自动化。今天的自动化任务是/etc/apt/apt.config.d/50unattended-upgrades在新计算机上安装软件和配置。我已经编写了软件安装脚本,但现在我一直坚持取消注释所需的无人值守升级行。

我给你举个例子,这个:

// Automatically upgrade packages from these (origin:archive) pairs
//
// Note that in Ubuntu security updates may pull in new dependencies
// from non-security sources (e.g. chromium). By allowing the release
// pocket these get automatically pulled in.
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that …
Run Code Online (Sandbox Code Playgroud)

bash sed unattended-upgrades text-processing

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

如何在行位置插入ascii字符?

bl:ab:la:bl:ab:la我想以格式 >>编辑 MAC 列表blab.labl.abla。每个 MAC 都排成一行。我是 AWK 或 SED 的新手,但我几乎确信可以使用这些命令中的任何一个来执行它。

有没有办法设置必须插入字符(点)的列位置(使用 sed 或 awk)才能完成此任务?

我已经阅读了 sed 手册页,但没有得到任何明确的说明。

command-line text-processing

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

如何从文件中删除特定字符串

我确实有一个 bash 脚本。我想从文本文件中删除特定字符串。我已经在网上找到了一个命令,但似乎不太稳定。

我试过了;

mv .admins .adminsold
sed -r "s#${MYFUNCTION}(,|$)##g" <.adminsold >.admins
Run Code Online (Sandbox Code Playgroud)

我的输入文件;

# Admin rule
[[rule]]
    # Set your admin Group Ids here, ex: [ 13, 42 ]
        groupid = [  329, 2, 324, 156 ]
    # And/Or your admin Client Uids here
    useruid = []
    # By default treat requests from localhost as admin
    ip = [ "127.0.0.1", "::1" ]
    "+" = "*"
Run Code Online (Sandbox Code Playgroud)

预期文件;

# Admin rule
[[rule]]
    # Set your admin Group Ids here, ex: [ 13, …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

bash 脚本比较两个文件的字段并替换列

我有两个文件。

文件A:

newname,1,string
newname,2,string
newname,3,string
...
name,65500,string
Run Code Online (Sandbox Code Playgroud)

文件B;

oldname,1,string
oldname,2,string
oldname,3,string
...
oldname,65500,string
Run Code Online (Sandbox Code Playgroud)

我需要一个 bash 脚本来将文件 B 中的“旧名称”更改为文件 A 中的“新名称”,其中第二列号匹配。

text command-line bash scripts text-processing

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

如何删除文本文件中的前一个空格?

我有一个文本文件,行前有一个空格。如何使用tr(或正确的命令)删除它?

例如,我有这个:

 Text
Run Code Online (Sandbox Code Playgroud)

我想要这个:

Text   
Run Code Online (Sandbox Code Playgroud)

但是,对于 200 行的文本文件,我该怎么做呢?

我目前有这个管道:

cat file.txt | tr -s " " | tr -d "," 
Run Code Online (Sandbox Code Playgroud)

其他tr命令用于删除文本文件的其他方面。

command-line scripts text-processing

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

如何通过 SSH 从终端编辑没有 gedit 的 .conf 文件?

我想我的问题更接近于“我将如何通过 ssh 终端从远程连接编辑 .conf 文件?”

我下载了一个 ssh 模拟器到我的 iPhone 上,它运行良好,而且我可以通过 DNS 服务 ssh 到我家里的电脑。现在我正试图惹恼我现在在家的室友,我让我的机器发出哔哔声。

为了做到这一点,我需要编辑/etc/modprobe.d/blacklist.config. 我试过 sudoedit 但我没有收到任何文字。

任何图形都是不可能的,因为我本质上是在一个专用终端中,就像你按下Ctrl+ alt+ 一样F1

ssh configuration command-line remote text-processing

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

如何拆分文件的内容?

我有一个包含一千行的文本文件。我想通过将每一行写入单独的文本文件来将文件拆分为 1000 个不同的文件。我希望拆分文件的名称按顺序排列。

例子:

foo.txt 文件包含,

foo
bar
...
...
lastfoo
Run Code Online (Sandbox Code Playgroud)

第一个拆分文件必须仅包含一行foo,其名称为bar1.txt. 并且第二个文件必须只包含一行bar,它的名称bar2.txt也是如此,因为最后一个文件应该包含一行lastfoo,最后一个文件的名称将是bar1000.txt.

命令行(单行)方式比脚本方式更好。

command-line text-processing

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