我正在阅读大量有关 sed 的文档,但仍然对我的特定用例感到困惑。
我想用我自己的行替换 conf 文件中的这一行:
替换这一行:
#maxmemory <字节>和:
最大内存 26GB
这是我尝试过的:
sed s/maxmemory.*bytes.*/maxmemory 26gb//etc/redis/redis.conf
我收到错误:
sed: -e 表达式 #1, char 30: 未终止的 `s' 命令
这让我很难过,因为我不知道这意味着什么。所以我的问题是:
我怎样才能完成我想要的?这个错误是什么意思?(所以我可以从中学习)
我有一个非常大的文件(~400 GB),我需要从中删除最后两行。我尝试使用sed,但在我放弃之前它运行了几个小时。有没有一种快速的方法可以做到这一点,还是我坚持sed?
我想获取 Linux 服务器上所有可用网络设备名称的列表。我想
ifconfig
Run Code Online (Sandbox Code Playgroud)
可以完成这项工作,但是 ifconfig 会产生相当多的输出:
eth0 Link encap:Ethernet Hardware Adresse 08:00:27:fc:5c:98
inet Adresse:192.168.2.222 Bcast:192.168.2.255 Maske:255.255.255.0
inet6-Adresse: fe80::a00:27ff:fefc:5c98/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:329 errors:0 dropped:0 overruns:0 frame:0
TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:41496 (40.5 KiB) TX bytes:32503 (31.7 KiB)
eth1 Link encap:Ethernet Hardware Adresse 08:00:27:e9:35:7d
[...]
eth2 Link encap:Ethernet Hardware Adresse 08:00:27:ff:db:fe
[...]
lo Link encap:Lokale Schleife
[...]
Run Code Online (Sandbox Code Playgroud)
我想要实现的是一个列表
eth0
eth1
eth2
lo
Run Code Online (Sandbox Code Playgroud)
甚至更好
eth0
eth1
eth2
Run Code Online (Sandbox Code Playgroud)
我认为这可以通过“cat”、“sed”和“grep”的组合来完成,但我根本不知道如何去除不必要的信息。
我正在寻找一行返回正在运行的进程的 pid 的行。
目前我有:
ps -A -o pid,cmd|grep xxx|head -n 1
这将返回拳头pid, command。我只需要输出中的第一个数字,而忽略其余部分。我想sed或awk会在这里提供帮助,但我对他们的经验有限。
另外,这还有一个问题,如果 xxx 没有运行,它会返回 grep 的 pid。
有一行真的很重要,因为我想重用输出来做其他事情,比如杀死那个进程。
我有带有空格分隔字符串 (2-5) 的大文本文件。字符串可以包含“'”或“-”。我想用管道代替第二个空格。
最好的方法是什么?
使用 sed 我在想这个:
sed -r 's/(^[a-z'-]+ [a-z'-]+\b) /\1|/' filename.txt
Run Code Online (Sandbox Code Playgroud)
任何其他/更好/更简单的想法?
这是以下内容的手册页条目-n:
-n
抑制模式空间的自动打印
我注意到,当不使用-n对某些操作,每行被打印到标准输出(和所请求的线被印刷两次):
$ cat test.txt
first
second
third
fourth
fifth
$ sed -n '2,3p' test.txt
second
third
$ sed '2,3p' test.txt
first
second
second
third
third
fourth
fifth
Run Code Online (Sandbox Code Playgroud)
但是,该定律不适用于其他命令:
$ sed -n 's/t/T/' test.txt
$ sed 's/t/T/' test.txt
firsT
second
Third
fourTh
fifTh
Run Code Online (Sandbox Code Playgroud)
那么究竟有什么作用-n呢?
我有一个文件
xyz... rsync: "/home/path/to/file": Permission denied (13) rsync:
"/home/path/to/file1": Permission denied (13) rsync:
"/home/path/to/file2": Permission denied (13) rsync:
"/home/path/to/file3": Permission denied (13)
Run Code Online (Sandbox Code Playgroud)
现在我只想提取文件路径并将其存储到另一个文件中。输出文件是这样的:
/home/path/to/file
/home/path/to/file1
/home/path/to/file2
/home/path/to/file3
Run Code Online (Sandbox Code Playgroud)
使用 sed 或 awk 我该怎么做?
我试过了,sed -n '/"/,/"/p' myfile但它不工作。
我有一个巨大的文本文件,它太大了,无法将整个文件分页到内存中。我需要对这个文本文件做的就是编辑第一行(它是一个 CSV 文件,我需要更改标题)。
有没有一种简单的方法可以在 bash 中做到这一点?
我有一个非常大的文件,其中散布着零宽度空间。打开和编辑使用时间太长,vi所以我想使用sed. 问题是,我不知道如何匹配字符!我试过使用\u200B, \x{200b}。有任何想法吗?
如果有帮助的话,我正在运行 CentOS 5。
sed ×10
linux ×6
bash ×4
command-line ×3
awk ×2
grep ×2
regex ×2
cat ×1
networking ×1
pid ×1
text-editing ×1
textfiles ×1
unicode ×1
unix ×1