标签: text-processing

如何删除包含特定字符串的文件行?

如何删除包含“adf.ly”字符串的文件(主机)行?

text-processing

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

修复此文件的 sed 命令是什么,因此每行的最后一个值是双引号

我有一个包含两百万行表格的文件:

"00005cea-668e-4475-9e19-92a25c8b74fb",129.24728",D#
Run Code Online (Sandbox Code Playgroud)

最后一个值实际上应该是:

"00005cea-668e-4475-9e19-92a25c8b74fb",129.24728,"D#"
Run Code Online (Sandbox Code Playgroud)

请,我如何使用 sed 命令来修复此文件,以便删除虚假的 " 并且最后一个值是双引号

regex sed text-processing

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

如何比较包含多个 md5 校验和的两个文件以确定更改的文件?

我有两个文件MD1MD2.

MD1 包含 md5sums:

5f31caf675f2542a971582442a6625f6  /root/md5filescreator/hash1.txt
4efe4ba4ba9fd45a29a57893906dcd30  /root/md5filescreator/hash2.txt
1364cdba38ec62d7b711319ff60dea01  /root/md5filescreator/hash3.txt
Run Code Online (Sandbox Code Playgroud)

其中hash1hash2hash3是文件夹中存在的三个文件md5filescreator

同样MD2包含:

163559001ec29c4bbbbe96344373760a  /root/md5filescreators/hash1.txt
4efe4ba4ba9fd45a29a57893906dcd30  /root/md5filescreators/hash2.txt
1364cdba38ec62d7b711319ff60dea01  /root/md5filescreators/hash3.txt
Run Code Online (Sandbox Code Playgroud)

这些文件在文件夹中的位置md5filescreators

我想将校验和md5filescreator与相应文件的校验和进行比较md5filecreators

对于校验和相同的文件,shell 脚本应该返回OK,对于校验和不同的文件以及文件名,shell 脚本应该返回FALSE

可以使用md5sum --check(因为它通常只检查 1 个 MD5 文件中的任何更改)来完成吗?

command-line md5sum text-processing

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

使用命令出现模式时将文件拆分为两个文件

我想要一个简单的命令(AWK、Perl 等)将文件拆分为两个文件,如下所示。

test.pem

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALq6EmgljkwfHKkB
4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4vYFSS
8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3Yeju
hIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAECgYBL6GynLe1FALjT89JRgsAyD/6+
jDXqxxuLE4xlX0YV91LuBN9Re3Y3EnJjpyXRq27097AUt5+jl9rfRsUcPdOC2s4W
txAEdJ2INgRbgilu2jgrKItPT9fC2e1oRJoHYIPHmE1SbXEqjm5fmelG7dqoNv95
Y/yr/YvIuF/aC8AEmQJBAOpYD0y5tr7wi0SXH2EWYlg4u+9++o14e+m0LDA8KbbL
uraS3XrHsS9IfKTLlJcyxTMQDA3TzYOfOAECs/hWlhcCQQDL+4Uz8yPVPkxoWFpH
qAauQ/kvxMQLRgJzc9+7EClAMbN3F26xl0GMmNE8eQ1A3622HG2ejMdgS07VOxOJ
rfIjAkEA3aACeDF63wFm9Ktnhc5Bm+Wr90hDdN/pcJBw6f08BiCOqHQk+iU5MNqA
5umR0Zy2WyBmBf21czF1KZ+AzPA2aQJAElEis/iIZjSy7cfJS5f2CZ4G+Vgk9pIx
1CY6l/Sqj54m7HHJOd9IPpTWbSS9oO61DZ5d5Zfkq2v3x0QHzBw3mwJBAKN1xO/3
RkwGrcgBUmviRpZN2GT6uNQd4lV1rLQXoPRqUUeFA7tSD198EXAiRGdMFMRBr+c6
C8ugBRjNMLUicy8=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICfjCCAeegAwIBAgIJANykL9YOhRqKMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
BAYTAklOMRMwEQYDVQQIDApUYW1pbCBOYWR1MRAwDgYDVQQHDAdDaGVubmFpMQww
CgYDVQQKDANGQ0kxFDASBgNVBAMMC3J0eHNjcGxwMDY1MB4XDTE2MDMxNjE2MDUy
OVoXDTE3MDMxNjE2MDUyOVowWDELMAkGA1UEBhMCSU4xEzARBgNVBAgMClRhbWls
IE5hZHUxEDAOBgNVBAcMB0NoZW5uYWkxDDAKBgNVBAoMA0ZDSTEUMBIGA1UEAwwL
cnR4c2NwbHAwNjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALq6Emgljkwf
HKkB4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4v
YFSS8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3
YejuhIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAGjUDBOMB0GA1UdDgQWBBRjvXHC
pMQrNHm4bj7e6MJZcUyy+TAfBgNVHSMEGDAWgBRjvXHCpMQrNHm4bj7e6MJZcUyy
+TAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBADegC439XYCfiq4oj+Lm
pH71WtPmbbB2+exEkIYioB8i/mQqIn65sKAVf8pcockoMNlYnvhPPdVfrB81iA1V
2QbzJs3C+1eKhFeOpL2dXrJYD9X5LsSTdOvDcHSa7pkY3CaM2u1JZB6DkYQU81fN
NufoWfmwHFQl64eO3qNys8ks
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我想把这个文件分成 2 个文件。

filename.key 应包含以下内容:

-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALq6EmgljkwfHKkB
4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4vYFSS
8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3Yeju
hIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAECgYBL6GynLe1FALjT89JRgsAyD/6+
jDXqxxuLE4xlX0YV91LuBN9Re3Y3EnJjpyXRq27097AUt5+jl9rfRsUcPdOC2s4W
txAEdJ2INgRbgilu2jgrKItPT9fC2e1oRJoHYIPHmE1SbXEqjm5fmelG7dqoNv95
Y/yr/YvIuF/aC8AEmQJBAOpYD0y5tr7wi0SXH2EWYlg4u+9++o14e+m0LDA8KbbL
uraS3XrHsS9IfKTLlJcyxTMQDA3TzYOfOAECs/hWlhcCQQDL+4Uz8yPVPkxoWFpH
qAauQ/kvxMQLRgJzc9+7EClAMbN3F26xl0GMmNE8eQ1A3622HG2ejMdgS07VOxOJ
rfIjAkEA3aACeDF63wFm9Ktnhc5Bm+Wr90hDdN/pcJBw6f08BiCOqHQk+iU5MNqA
5umR0Zy2WyBmBf21czF1KZ+AzPA2aQJAElEis/iIZjSy7cfJS5f2CZ4G+Vgk9pIx
1CY6l/Sqj54m7HHJOd9IPpTWbSS9oO61DZ5d5Zfkq2v3x0QHzBw3mwJBAKN1xO/3
RkwGrcgBUmviRpZN2GT6uNQd4lV1rLQXoPRqUUeFA7tSD198EXAiRGdMFMRBr+c6
C8ugBRjNMLUicy8=
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

filename.cert 应包含以下内容:

-----BEGIN CERTIFICATE-----
MIICfjCCAeegAwIBAgIJANykL9YOhRqKMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
BAYTAklOMRMwEQYDVQQIDApUYW1pbCBOYWR1MRAwDgYDVQQHDAdDaGVubmFpMQww
CgYDVQQKDANGQ0kxFDASBgNVBAMMC3J0eHNjcGxwMDY1MB4XDTE2MDMxNjE2MDUy
OVoXDTE3MDMxNjE2MDUyOVowWDELMAkGA1UEBhMCSU4xEzARBgNVBAgMClRhbWls
IE5hZHUxEDAOBgNVBAcMB0NoZW5uYWkxDDAKBgNVBAoMA0ZDSTEUMBIGA1UEAwwL
cnR4c2NwbHAwNjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALq6Emgljkwf
HKkB4s1BkXeYE/j0zO271m8IFerHyGVKjeq+RNJ/8vTNaeQSdpTfeGc5kTuNlK4v
YFSS8V2jVFwsXwKS63/H6sfzeFvgaFMJb/DghejxylajQ+71QXwsRdMmPJwH0JU3
YejuhIA+NegFSU5BVbks8QZeGOeKQ0MlAgMBAAGjUDBOMB0GA1UdDgQWBBRjvXHC …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

如何从 traceroute 输出中删除 IP 地址周围的括号 ()

我需要像这样从跟踪路由中提取第二个 IP 地址

traceroute -m2 8.8.8.8 |grep .net |awk '{print $3}'
(111.222.333.4444)
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我似乎都无法弄清楚如何从输出中删除周围的括号。

command-line text-processing

6
推荐指数
2
解决办法
4422
查看次数

如何使用sed从存储库中删除一行

我的/etc/apt/sources.list包含这一行:

deb http://downloads.sourceforge.net/project/xenlism-wildfire/repo deb/ 
Run Code Online (Sandbox Code Playgroud)

我想通过sed命令行删除该行,所以我尝试了此代码但返回错误!

$ sudo sed 's:deb http://downloads.sourceforge.net/project/xenlism-wildfire/repo deb/::g' /etc/apt/sources.list
sed: -e expression #1, char 75: unknown option to `s'
Run Code Online (Sandbox Code Playgroud)

我猜是这个错误:之后的符号http,但我该如何解决呢?

command-line repository sed text-processing

6
推荐指数
2
解决办法
1126
查看次数

如何按特定字段从 .csv 添加用户?

我正在尝试将我的用户分类到特定的服务器中,所以我现在要做的是按性别获取所有用户。本质上,我将拥有一台服务器,所有男性用户都使用,而另一台服务器则供所有女性用户使用。文件中每行的数据读取如下:

jimlee,7676,jim lee,sony,male,8912,1543,33:44
Run Code Online (Sandbox Code Playgroud)

我在下面使用的命令获取第一个字段,然后添加用户。但是,我的目标是仅添加特定性别并为他们创建用户。所以看看第五个字段如何是性别字段我知道使用-f5会给我那个字段并按性别显示所有用户但我不确定如何根据特定字段获取名称,在这种情况下是第五个字段(性别)。

cut -d ',' -f1 file.csv | while read line; do sudo useradd "$line"; done
Run Code Online (Sandbox Code Playgroud)

command-line csv text-processing

6
推荐指数
2
解决办法
1577
查看次数

在前两个匹配项之间逐行搜索文本

我有带有文本的文件:

1861_ASSET-D_T_201702181000-201702181045_HN_
197895_STRING-H_T_201702181000-201702181045_HN_
14512861_FILE-FD_T_201702181000-201702181045_HN
Run Code Online (Sandbox Code Playgroud)

如何使用 egrep、awk 或 sed 在第一个和第二个匹配项“_”之间分配文本?

我希望有:

ASSET-D
STRING-H
FILE-FD
Run Code Online (Sandbox Code Playgroud)

command-line grep sed awk text-processing

6
推荐指数
5
解决办法
1227
查看次数

仅显示 --side-by-side diff 的右侧

我似乎没有找到解决方法。是否有一个单线只能获得diff --side-by-side输出的右侧?

例如:

为此:diff --side-by-side file1 file2我得到这两种类型的结果之一:

  2 Africa                            |   3 Africa
  3 America                               3 America    
  3 Asia                                  3 Asia
  4 Antarctica                            4 Antarctica
  4 Oceania                               4 Oceania
  7 Europe                                7 Europe
Run Code Online (Sandbox Code Playgroud)

或者

  3 Africa                                3 Africa
  3 America                               3 America
  3 Asia                              <
  4 Antarctica                            4 Antarctica
                                      >   4 Asia
  4 Oceania                               4 Oceania
  8 Europe                                8 Europe
Run Code Online (Sandbox Code Playgroud)

我怎样才能把它们变成这个:

| 3 Africa
  3 America
  3 Asia
  4 Antarctica
  4 Oceania
  7 Europe
Run Code Online (Sandbox Code Playgroud)

这分别是:

  3 Africa …
Run Code Online (Sandbox Code Playgroud)

command-line diff text-processing

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

如何在不同行的两个模式之间替换文本?

我有几个需要替换文本的文件。文本每次都以相同的模式开始和结束,但模式之间的内容是可变的。图案可以出现在行的中间,它们之间的内容往往跨越多行。

每个文件中只会出现一次开始和结束模式。

我需要一个命令行方法来替换模式之间的文本,包括模式本身。输出到新文件或就地编辑都可以。

对单个文件进行操作的命令将起作用,因为我可以遍历文件并自己应用该命令。我尝试了一个sed解决方案,但只能设法替换整行。

文本示例如下:

Cable Type ID:135, Installation ID:62, Alpha Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Beta Conductor Origin: 
Tolerance Report B74 - 3rd June 1996, Phase Conductor Size: 
45mm, Security: Security-Start Bs86gKI-734Lw#32_nP/5589Zfb8Wj-
sW93j9b Security-End, Location ID:889, Protective Earth Size:
67mm, Protective Earth Max Current (A): 4, Overload Time...
Run Code Online (Sandbox Code Playgroud)

开始模式是Security-Start,结束模式是Security-End。我想用这个词替换模式和介于两者之间的所有内容REDACTED

我希望输出是:

Cable Type ID:135, Installation ID:62, Alpha Conductor Origin:
Tolerance Report B74 - 3rd June 1996, Beta Conductor …
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

标签 统计

text-processing ×10

command-line ×8

sed ×3

awk ×1

csv ×1

diff ×1

grep ×1

md5sum ×1

regex ×1

repository ×1