标签: text-processing

比较两个文本文件

我有 2 个大 csv 文件,file1.csv,看起来像这样

1,2,3,4
1,4,5,6
1,7,8,9
1,11,13,17
Run Code Online (Sandbox Code Playgroud)

file2.csv 看起来像这样

1,2,3,4
1,7,8,9
2,4,9,10
13,14,17,18
Run Code Online (Sandbox Code Playgroud)

这些只是我编造的随机数,基本上是相同和排序的两个数字。我想比较file1.csv 和file2.csv,然后将file1.csv 中存在但file2.csv 中不存在的行复制到file3.csv。分隔符显然是逗号

我试过

comm -2 -3 file.csv file2.csv > file3.csv
Run Code Online (Sandbox Code Playgroud)

我试过

diff -u file.csv file2.csv >> file3.csv
Run Code Online (Sandbox Code Playgroud)

两者都不起作用,因为 file3 比 file1 和 file2 大。我尝试了不同的diffcomm命令,有时它是比file2更大,差不多大小的文件文件1,我知道,文件3在尺寸上比file1和file2的是显著少。当然我看的是file3,而不是我想要的结果

在这一点上,我知道可以使用difforcomm但我不知道要使用的命令。

command-line bash csv text-processing

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

从文本文件一次只打印一行

如何一次仅打印或显示文本文件中的单词。当我运行我的脚本时,它应该只一个一个地显示文本文件中的每个单词,但只显示那个单词。

这是我所做的,但它将每个单词显示在单独的行上,但它显示了所有单词:

FS=$'\n'      
for j in `cat read`
do
    echo "$j"
done
Run Code Online (Sandbox Code Playgroud)

我希望输出看起来像这样:

root@matrix:~> first word  ---> this word disappear when second is displayed
root@matrix:~> second word ---> this disappear when third is displayed
root@matrix:~> third word  ---> this disappear when fourth is displayed and continues like this to the end of the file!
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts text-processing

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

如何从文件中删除空行?

我有一个文件(主机),其中一些行没有内容,如何删除没有内容的行?

text-processing

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

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

如何删除包含“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
查看次数

如何使用每行打印字符限制的cat文件?

我想 cat 文件,但每行的最大长度有限制。例如,我有一个 10 行的文件,每行有 10000 个字符,我想打印每行的前 100 个字符。猫或其他替代品是否可以做到这样的事情?谢谢。

command-line text-processing

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

基于两列重新排列文件内容

输入:文件包含数据:

ID   Location  Domaind
1     20        X
1     5         y
1     25        Z
2     1         L
2     150       N
2     50        M
3     50        J
4     33        k
4      3        I
Run Code Online (Sandbox Code Playgroud)

我必须根据 ID 和位置来安排这些数据。平均首先按位置升序排列 ID=1,然后从左到右打印域与位置相同的顺序。

输出如:

1      Y-X-Z
2      L-M-N
3        J
4       I-K
Run Code Online (Sandbox Code Playgroud)

command-line text-processing

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

标签 统计

text-processing ×10

command-line ×7

bash ×2

csv ×1

md5sum ×1

regex ×1

scripts ×1

sed ×1