假设我在文本文件中有一个 URL 列表:
google.com/funny
unix.stackexchange.com/questions
isuckatunix.com/ireallydo
Run Code Online (Sandbox Code Playgroud)
我想删除“.com”之后的所有内容。
预期成绩:
google.com
unix.stackexchange.com
isuckatunix.com
Run Code Online (Sandbox Code Playgroud)
我试过
sed 's/.com*//' file.txt
Run Code Online (Sandbox Code Playgroud)
但它也删除.com
了。
我有休文件,其中包含以下详细信息:
define host{
use generic-host ; Name of host template to use
host_name ServerA_172.29.16.102
alias ServerA_172.29.16.102
address 172.29.16.102
check_command check-host-alive
max_check_attempts 3
notification_interval 120
notification_period 24x7
}
define host{
use generic-host ; Name of host template to use
host_name ServerB_172.29.16.103
alias ServerB_172.29.16.103
address 172.29.16.103
check_command check-host-alive
max_check_attempts 3
notification_interval 120
notification_period 24x7
}
Run Code Online (Sandbox Code Playgroud)
我想要什么,搜索"address 172.29.16.102"
和删除 5 行上方和之后的 4 行。
我试过用 sed 跟踪但没有用
sed '$N;$N;N;/address 172.29.16.102/,+5d' hosts
Run Code Online (Sandbox Code Playgroud) 例如,一个temp.txt
文件包含如下信息:
adsf on line jhkjhvjdbvjvbvbdjkvn
qerwtt on line fdgdgdgdd
qwqertg on line safffasffaf
wrt on line adaddsd
Run Code Online (Sandbox Code Playgroud)
我想on line
在文件的所有行中进行 grep并将行的其余部分写入另一个文件,即在temp.txt
文件处理之后,新文件应包含:
on line jhkjhvjdbvjvbvbdjkvn
on line fdgdgdgdd
on line safffasffaf
on line adaddsd
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 linux 终端中做到这一点?
我有一个 food.txt 文件如下:-
mangoes|foo|faa
oranges|foo|faa
chocolates|foo|baz
Run Code Online (Sandbox Code Playgroud)
如果条件 baz 满足,我试图用bar替换foo。(想在这里使用正则表达式 b*z )
目前使用下面的 sed 命令,但这不会直接修改现有文件。我也不能使用正则表达式 (b*z)。
sed '/baz/s/foo/bar/g' food.txt
Run Code Online (Sandbox Code Playgroud)
请建议一种除“sed”之外的方法来直接修改现有文件。
PS:我试过了,sed -i
但我想使用一些其他命令而不是 sed。
我正在使用 mobaxterm(操作系统 - Windows)