标签: text-processing

用于换行的 sed -l 选项不起作用

sed -e 's/word1/word2/' -l 3 output > output2
Run Code Online (Sandbox Code Playgroud)

我正在测试这个命令。我预计每行 3 个字符。但是,它不起作用。output2与 具有相同的换行符output。我误解了换行吗?

command-line sed text-processing

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

从一行中删除某些字段

我在文件中有以下几行:

Modified folders: html/project1/old/dev/vendor/symfony/yaml/Tests/bla.yml
Modified folders: html/port5/.DS_Store
Modified folders: html/trap/dev8/.DS_Store
Modified folders: html/bla3/test/appl/.DS_Store
Modified folders: html/bla4/pro1/app/bla/Api2.php
Modified folders: html/bla10/dev/appl/language/.DS_Store
Modified folders: html/bla11/dev/appl/language/abc.txt
Run Code Online (Sandbox Code Playgroud)

这基本上是rsync. 我想列出文件的所有行,最多 3 个目录位置,例如

Modified folders: html/project1/old
Modified folders: html/port5
Modified folders: html/trap/dev8
Modified folders: html/bla3/test
Modified folders: html/bla4/pro1
Modified folders: html/bla10/dev
Modified folders: html/bla11/dev
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我提供任何命令或 shell 脚本来做同样的事情吗?

command-line scripts rsync text-processing cut-command

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

简单的 BASH - 如何逐行读取文件

我有一个包含以下内容的文件:

6 192.168.0.4   
13 192.168.0.2        
2 192.168.0.9
Run Code Online (Sandbox Code Playgroud)

第一个数字是右侧 IP 尝试从同一网络内登录我的机器 (ssh) 的次数。目标是在尝试次数超过 3 次时使用 netfilter 阻止该 IP。这里,有 2 个条目符合条件。注意:可能有 3 个以上的条目。

我想不出一种方法来逐行排序这个文件(我对 BASH 非常陌生)。这是我尝试过的:

#!/bin/bash
file="/home/foo/documents/iptxt"
while IFS='' read line || [[ -n "$line" ]]; do
  char1=`awk '{ print $1 }' $file`
  char2=`awk '{ print $2 }' $file`
  if $char1 -gt 3
  then
    echo "$char2 has tried to login $char1 times
  fi
done <$file
Run Code Online (Sandbox Code Playgroud)

这给出了指向第 5 行(if 语句)的“未找到命令”错误。难怪,因为我回应了 $char1_attempt 并且它给出了:

6 13 2
6 13 2
6 13 2
Run Code Online (Sandbox Code Playgroud)

目前,J …

command-line bash scripts text-processing

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

合并彼此相邻的文本文件

我有.txt来自光谱仪的数据,有 800 行和 5 列。我想将大约 15 个这些文件彼此相邻合并。所以最终.txt文件应该有 800 行和 75 列。

所有.txt文件如下所示:

Wave   ;Sample   ;Dark     ;Reference;Absorbance
[nm]   ;[counts] ;[counts] ;[counts] ;[A.U]
200.00;   34.647;   -0.317;   79.668; 0.35734
201.00;   29.937;  -21.220;   70.385; 0.25357
202.00;   48.826;   -0.527;   99.657; 0.30721
203.00;   43.201;    4.165;  136.775; 0.53103
...
Run Code Online (Sandbox Code Playgroud)

所需文件:

Wave   ;Sample   ;Dark     ;Reference;Absorbance; Wave   ;Sample   ;Dark     ;Reference;Absorbance
[nm]   ;[counts] ;[counts] ;[counts] ;[A.U];  [nm]   ;[counts] ;[counts] ;[counts] ;[A.U]
200.00;   34.647;   -0.317;   79.668; 0.35734;    200.00;   34.647;   -0.317;   79.668; 0.35734;
201.00;   29.937;  -21.220; …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

使用多个键连接两个文本文件

我有两组数据。我想通过两个键值(storm_ID、Cell_ID)加入它们。

第一个数据集看起来像:

Storm_ID,Cell_ID,Wind_speed 
2,10236258,27 
2,10236300,58 
2,10236301,25 
3,10240400,51
Run Code Online (Sandbox Code Playgroud)

第二个数据集看起来像:

Storm_ID,Cell_ID,Storm_surge 
2,10236299,0.27 
2,10236300,0.27 
2,10236301,0.35 
2,10240400,0.35 
2,10240401,0.81 
4,10240402,0.11
Run Code Online (Sandbox Code Playgroud)

现在我想要一个看起来像这样的输出:

Storm_ID,Cell_ID,Wind_speed,Storm_surge 
2,10236258,27,0 
2,10236299,0,0.27 
2,10236300,58,0.27 
2,10236301,25,0.35 
2,10240400,0,0.35 
2,10240401,0,0.81 
3,10240400,51,0 
4,10240402,0,0.11
Run Code Online (Sandbox Code Playgroud)

我尝试在 Linux 中使用 join 命令来执行此任务,但失败了。Join 命令跳过了数据库中不匹配的行。我可以使用 Matlab,但数据大小超过 100 GB,这使得这项任务非常困难。有人可以请指导我吗?我可以使用 SQL 或 python 来完成这个任务。

command-line awk text-processing

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

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

从日志文件中选择一行中的剩余文本

我正在使用 Bash shell 处理一些日志文件,我需要将这些文件放入 CSV 文件中。信息I的需要是处理的开始日期和时间过程结束日期和时间进程ID消息

我所做的是,grep 行包括启动进程并将它们放入一个文件中,然后 Grep 结束进程并将它们放入第二个文件中。完成后,我获取每个文件,并使用 awk 拆分和提取所需的信息,这是我正在使用的代码的和平,

input=starts.txt
while IFS= read -r line
do
    procs=`echo $line | awk  '{ print $6;}' 
    date_s=`echo $line | awk '{ print $1;}'`
    time_s=`echo $line |  awk '{ print $2;}'`
    m1=`echo $line |  awk '{ print $3;}'`
    m2=`echo $line |  awk '{ print $4;}'`
    m3=`echo $line |  awk '{ print $5;}'`
    m4=`echo $line |  awk '{ print $7;}'`
    m5=`echo $line |  awk '{ …
Run Code Online (Sandbox Code Playgroud)

command-line bash text-processing

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

用 bash 改变单个字母的位置

如果我有一个名为的文件text.txt 并且它包含一行文本,ijbiaubiu 是否可以将每个字母在字母表中向前或向后移动一个空格以手动对其进行加密,我认为这将是 ROT 密码?

它是如何完成的?

我已经尝试过sedperl -pi -e但我不知道如何在应用命令之前读取文件的内容,而这些实用程序从来没有成功过。

澄清一下,我不是在寻求加密文件的帮助。相反,在学习如何使用 CLI 手动转换文件中的字母字符的帮助下。

command-line text-processing

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

如何删除文本中的行?

考虑具有以下形式的 text.txt 文件

25 1 4 5 2 19 38

21 0 8 8 7 7 61

<clus scale = "125"> 1 3 2</clus>

25 3 1.63 123 56 12 38

21 123 12.3 12.1 1.5 2.67 3.77

<clus scale = "227"> 5 6 2</clus>
Run Code Online (Sandbox Code Playgroud)

如何使用终端仅保留数字(和空)行,即将文件转换为

25 1 4 5 2 19 38

21 0 8 8 7 7 61

25 3 1.63 123 56 12 38

21 123 12.3 12.1 1.5 2.67 3.77
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

相当于 RPM 的“替换”实用程序的 DEB

我经常replace在我的 CentOS 服务器上使用非常方便的命令:

替换实用程序更改文件中或标准输入中的字符串。

即使在 RPM 方面,它也不是一个独立的包,我认为它是一个更大的实用程序包的一部分。无论如何,我想知道是否有与此等效的 Ubuntu?我知道我可以用grep和胡闹sed,但replace要方便得多。

command-line software-recommendation text-processing

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