小编fcm*_*fcm的帖子

使用 sed 删除文本文件的一部分和以下几行

我需要编辑如下文件:

auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
iface wlx000 inet6 auto
  post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
auto wlx000
Run Code Online (Sandbox Code Playgroud)

目标是删除以 'iface...inet6' 开头的行,并删除接下来以空格开头的几行(可以没有或超过一个):

iface wlx000 inet6 auto
  post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
Run Code Online (Sandbox Code Playgroud)

并保持其余部分不变以获得以下结果:

auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
auto wlx000
Run Code Online (Sandbox Code Playgroud)

我尝试使用 sed 如下:

sed -i.old -r -e "/iface\s*\w*\s*inet6.*/,\${d;/^\s.*/d;}" /etc/configfile
Run Code Online (Sandbox Code Playgroud)

但它会从正确的位置开始删除所有内容,但会删除到最后。我只想删除 select iface 文本后以空格开头的行。

sed awk text-processing

8
推荐指数
2
解决办法
636
查看次数

读取链接文字与变量

使用 BASH:答案可能很明显,但不适合我。

> echo $PWD
/root/fcm
> readlink -f ~
/root
> # but then with a variable or literal
> a='~'
> readlink -f $a
/root/fcm/~
> readlink -f "~"
/root/fcm/~
Run Code Online (Sandbox Code Playgroud)

我期待收到'/root/';
谁在进行替换 bash 或 readlink?

shell bash quoting variable-substitution tilde

4
推荐指数
1
解决办法
743
查看次数

shell 脚本退出或崩溃后自动删除生成的文件

我有一个相当长的 bash 进程,它生成一些临时文件,其中一些文件具有生成的名称和几乎随机的名称。

我希望避免在流程失败后手动删除它们。是否有一个临时目录(例如附加到 PID 的临时目录)一旦 PID 结束就会“自动删除”?如果没有,将是一个很好的补充。

一种方法是创建并使用此目录作为全局临时目录,但是,该目录将在进程异常结束后mkdir /tmp/$$保留​​。/tmp

我本来希望使用trap "rm -rf /tmp/$$" EXIT但也不起作用并使用 trap...RETURN; 太宽泛了。

我正在寻找通用的、可用于每个 shell 或其他用户程序的东西。

是否存在临时目录是或否?

bash shell-script

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