文件a.txt大约有 10 万个字,每个字都换行
july.cpp
windows.exe
ttm.rar
document.zip
Run Code Online (Sandbox Code Playgroud)
Fileb.txt有 150k 字,一个字一个字 - 有些字来自 file a.txt,但有些字是新的:
july.cpp
NOVEMBER.txt
windows.exe
ttm.rar
document.zip
diary.txt
Run Code Online (Sandbox Code Playgroud)
如何将这些文件合并为一个,删除所有重复的行,并保留新的行(存在于 中a.txt但不存在于 中的行b.txt,反之亦然)?
假设我有一个包含以下两行的文件:
2014-05-05 09:11:53 /aa/bbbb/cccccc 29899
2014-05-05 09:12:17 /aa/bbbb/cccccc?dddddddd 16767
Run Code Online (Sandbox Code Playgroud)
我只需要获取包含模式的行/aa/bbbb/cccccc,我不需要包含额外字符的第二行,即?dddddddd. 现在当我尝试
grep '/aa/bbbb/cccccc' file
Run Code Online (Sandbox Code Playgroud)
然后两条线都被选中。我需要完整的行,所以grep -o不可能是一个解决方案。
使用grep的可能解决方案是什么,以便根据搜索模式仅选择第一行?
对于这个给定的输入:
How to get This line that this word repeated 3 times in THIS line?
But not this line which is THIS word repeated 2 times.
And I will get This line with this here and This one
A test line with four this and This another THIS and last this
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
How to get This line that this word repeated 3 times in THIS line?
And I will get This line with this here and This one
Run Code Online (Sandbox Code Playgroud)
获取整行只包含三个重复的“这个”词。(不区分大小写匹配)
如何在每个空格前加上反斜杠,最好是使用tr或sed命令?
这是我的脚本:
#!/bin/bash
line="hello bye"
echo $line | tr ' ' "\\\ "
Run Code Online (Sandbox Code Playgroud)
这应该用反斜杠后跟一个空格替换空格,但它只是用反斜杠替换空格而不是反斜杠+空格。
这是我得到的输出:
hello\bye
Run Code Online (Sandbox Code Playgroud)
预期输出:
hello\ bye
Run Code Online (Sandbox Code Playgroud) 我在一个变量中有这家商店
sCellEventTrap-03-28 TRAP-TYPE -- CAC 代码:00
企业康柏
变量 { scellNameDateTime,
scellSWComponent,
scellE代码,
细胞CAC,
细胞EIP}
描述
“严重性:正常——本质上是信息性的。在定期驱动器检查期间,物理磁盘驱动器遇到 ID 块不一致。”
--#TYPE "StorageCell 事件"
--#SUMMARY "SCellName-TimeDate %s : SWCID %d : ECode: %d : CAC %d : EIP %d。"
--#ARGUMENTS {0,1,2,3,4,}
--#SEVERITY 信息
--#TIMEINDEX 136
--#状态警告
::= 13600808
我要削减一切,直到第二次出现". 所以这会给我:
sCellEventTrap-03-28 TRAP-TYPE -- CAC 代码:00
企业康柏
变量 { scellNameDateTime,
scellSWComponent,
scellE代码,
细胞CAC,
细胞EIP}
描述
“严重性:正常——本质上是信息性的。在定期驱动器检查期间,物理磁盘驱动器遇到 ID 块不一致。”
另一个例子
genericSanEvent 陷阱类型
企业 hpSanManager
变量 {severityLevel, category, id,
msgString、联系人姓名、联系人电子邮件、
联系工作电话,联系家庭电话,
联系寻呼机,联系传真 }
描述 … 我有一个包含我保存的数据的文件。现在我想将我的结果打印到一个新文件中。
例如,让我们以这个例子为例randomlog.log:
Link encap:Ethernet HWaddr 08:00:00:00:00:67
inet addr:10.10.10.10 Bcast:10.10.10.10 Mask:255.255.255.0
inet6 addr: fe80::casf:sdfg:23ra:dg12/64 Scope:Link
Run Code Online (Sandbox Code Playgroud)
如何只取第一行第 12 到 20 个字符的数据,然后取第三行的第 4 到第 8 个字符?输出看起来像这样:
Ethernet
t6 ad
Run Code Online (Sandbox Code Playgroud)
这可能吗?我想设置线和从位置到这个位置。
我有一个两列空格分隔的 .txt 文件,但第一列有空格(这是错误)。我需要将它转换为 csv,但我不能只用逗号替换所有空格。
示例输入:
gi|118592783|ref|ZP_01550172.1|_biphenyl-2 3-diol_1 2-dioxygenase_[Stappia_aggregata_IAM_12614] 1
Run Code Online (Sandbox Code Playgroud)
期望的输出:
gi|118592783|ref|ZP_01550172.1|_biphenyl-23-diol_12-dioxygenase_[Stappia_aggregata_IAM_12614],1
Run Code Online (Sandbox Code Playgroud)
我如何使用sed(或其他任何东西)用逗号替换一行中的最后一个空格,然后删除所有剩余的空格?这会有效地创建一个 CSV 文件吗?
我想定期在指标系统监视器中显示我的速度测试下载速度结果。
如果您运行,speedtest-cli 的输出会有所调整
$ speedtest-cli --simple
Ping: 50.808 ms
Download: 10.87 Mbit/s
Upload: 4.47 Mbit/s
Run Code Online (Sandbox Code Playgroud)
有没有什么办法可以进一步修剪输出,直到下载速度数字?
谁能解释一下这个sed命令是如何工作的?
sed 's@+@ @g;s@%@\\x@g' | xargs -0 printf "%b"
Run Code Online (Sandbox Code Playgroud) 我想iw dev wlan0 link每秒连续运行命令并将输出保存到csv文件中。
我正在使用以下命令:
while sleep 1; do
iw dev wlan0 link | grep 'freq:\|signal' | awk '{printf "%s ", $2, $3}' >> log.csv
done
Run Code Online (Sandbox Code Playgroud)
但是输出log.csv以以下方式保存:
2412 -41 2412 -42 2412 -45 2412 -43
Run Code Online (Sandbox Code Playgroud)
我希望以逗号分隔两个字段的方式保存输出(因此它们将显示在编辑器(如 MS Excel)中的单独列中)并且每个字段都运行到一个新行。该log.csv应是这样的(可以忽略的标签,他们只负责解释):
Signal Frequency
-41 2412
-42 2412
-45 2412
-43 2412
Run Code Online (Sandbox Code Playgroud)