小编αғs*_*нιη的帖子

有没有办法删除不是全部,而是只删除嵌套的括号?

说我有一个这样的字符串

[[["q", "0"], "R"], "L"], ["q", [["1", "["], "]"]], [["q", ["2", "L"]], "R"], ["q", ["3", ["R", "L"]]]
Run Code Online (Sandbox Code Playgroud)

我想从中删除所有嵌套的括号

["q", "0", "R", "L"], ["q", "1", "[", "]"], ["q", "2", "L", "R"], ["q", "3", "R", "L"]
Run Code Online (Sandbox Code Playgroud)

我了解如何编写算法来通过推入和弹出堆栈或仅递增和递减计数器来实现此目的,但我很好奇是否有一种方法可以仅使用sed或 之类的基本工具来做到这一点awk

sed awk text-processing

9
推荐指数
2
解决办法
2281
查看次数

使用“init”和“rd.break”重置root密码有什么区别?

我知道几种重置 root 用户密码的方法,但想知道哪种方法最好以及为什么。例如:

一个方法:

  1. 幼虫 > e
  2. init=/bin/sh(必要时删除rhgbquiet标记)> Ctrl+x
  3. /usr/sbin/load_policy -i
  4. mount -o remount,rw /
  5. passwd root 或者 passwd
  6. mount -o remount,ro /


乙法:

  1. 幼虫 > e
  2. rd.break> Ctrl+x
  3. mount -o remount,rw /sysroot/
  4. chroot /sysroot/
  5. passwd root 或者 passwd
  6. touch /.autorelabel

哪个最好?为什么是最好的?我正在准备 RHCSA(红帽认证系统管理员)考试。我需要知道每种方法的相对优点。其中之一更便携吗?更安全?有没有理由选择一个而不是另一个?

password root

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

使用排序按字母顺序排列文件名中的单词?

在阅读有关在 bash 中批量重命名文件的教程并使用该sort命令对文件内容进行排序时,我一直无法弄清楚如何将两者结合起来。

我有一个目录,其内容使用文件名中的标签进行排序,类似于程序TagSpaces处理事物的方式。创建或下载文件时,我会在文件名末尾添加我能想到的任何标签。下面是一个例子:

Sunrise (2) #wallpaper #4k #googleimages.jpg
Run Code Online (Sandbox Code Playgroud)

现在我想浏览所有这些文件并重命名它们,以便标签按字母顺序排序,而不影响标签之前或之后的任何内容(例如图片的标题或文件扩展名)。所以上面的将变成:

Sunrise (2) #4k #googleimages #wallpaper.jpg
Run Code Online (Sandbox Code Playgroud)

我该如何实现?我什至不知道如何将文件的名称而不是其内容传递给类似 的命令sort,然后我可以将其输出通过管道传输到mv.

bash sort rename

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

如何通过具有公共标题来合并两个文件的行?

我想根据作为标题存在于其中的公共数据合并两个文件。

以下是示例

文件 1

>Feature scaffold1
1   100  g
101 200  g
201 300  g
>Feature scaffold2
1   100  g
01  500  g
>Feature scaffold3
10  500  g
>Feature scaffold4
10  300  g
Run Code Online (Sandbox Code Playgroud)

档案 2

>Feature scaffold1
500 500 r
900 1000    r
>Feature scaffold2
200 300 r
>Feature scaffold3
100 200 r
>Feature scaffold4
500 600 r
>Feature scaffold5
1   1000    r
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出类型:

>Feature scaffold1
1   100 g
101 200 g
201 300 g
500 500 r
900 1000 …
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing

8
推荐指数
1
解决办法
929
查看次数

sh shell 不支持 $@ 上的参数扩展吗?

我在 AU 上发布一个问题的答案,我发现参数扩展 on$@不适用于shshell:

<infile xargs -d'\n' sh -c 'echo "${@%%/*}"' _
Run Code Online (Sandbox Code Playgroud)

但它在bash. 这是shshell 的预期行为,我如何在那里执行扩展?

此外,我知道通过-n1选项xargs我一次只能将一行传递给命令,但我对是否sh可以扩展感兴趣$@

<infile xargs -d'\n' -n1 sh -c 'echo "${0%%/*}"'
Run Code Online (Sandbox Code Playgroud)

infile 包含:

A1 /B1/C1
A 2/B2/C2
A3/B3/C3
Run Code Online (Sandbox Code Playgroud)

shell bash dash

8
推荐指数
1
解决办法
855
查看次数

按空格分隔但忽略反斜杠空格

5678 []
testing,\ group []
[testing []
ip\ 5.6.7.8 []
launch-wizard-1 0.0.0.0/0
456dlkjfa []
1.2.3.4 []
test 1.2.3.4/32 4.3.2.0/23 4.3.2.0/23
default 4.3.2.0/23 4.3.2.0/23
launch-wizard-2 0.0.0.0/0
launch-wizard-3 0.0.0.0/0
2.3.4.5/32 []
Run Code Online (Sandbox Code Playgroud)

我想得到上面的第一列,但问题是,我需要将\ (反斜杠空格)作为列的一部分,所以awk '{print $1}'应该给我

5678
testing,\ group
[testing
ip\ 5.6.7.8
launch-wizard-1
456dlkjfa
1.2.3.4
test
default
launch-wizard-2
launch-wizard-3
2.3.4.5/32
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing

8
推荐指数
3
解决办法
555
查看次数

为什么命令 tr "\'\\\"\?\!" "01234" 不起作用?

在终端中,如果我定义一些变量 char 如下:

export char=\'\\\"\?\!
Run Code Online (Sandbox Code Playgroud)

实际上,char 是字符串

'\"?!
Run Code Online (Sandbox Code Playgroud)

然后我使用tr命令替换'\"?!为数字01234

tr "\'\\\"\?\!" "01234"
Run Code Online (Sandbox Code Playgroud)

我以为我会得到

01234
Run Code Online (Sandbox Code Playgroud)

相反,我得到了

0\123
Run Code Online (Sandbox Code Playgroud)

如果有人能向我解释发生了什么,我将不胜感激。

似乎用sed命令单独替换每个字符可以避免这个问题,但为什么呢?

special-characters tr

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

匹配后替换第 N 行

比方说,我有这个包含 500 行文本的文件。

one
two
three
four
five
six
seven
eight
nine
ten
.
.
.
five-hundred
Run Code Online (Sandbox Code Playgroud)

如果我想用某个字符串替换匹配后的第五行,我会这样做:

sed '/two/{n;n;n;n;n;s/.*/MODIFIED/}' inputfile
Run Code Online (Sandbox Code Playgroud)

输出:

one
two
three
four
five
six
MODIFIED
eight
nine
ten
.
.
.
five-hundred
Run Code Online (Sandbox Code Playgroud)

但是如果我想在匹配后替换第 60 行呢?我不想写 'n' 次。

我尝试使用 x、h/H、g/G 和范围,但仍然无法获得所需的输出。

sed awk text-processing

8
推荐指数
4
解决办法
1137
查看次数

如何拥有三重启动 Linux Mint 17 Cinnamon/Ubuntu 14.04/Windows 8?

我已经安装了 Ubuntu 14.04 和 Windows 8 作为双启动系统,现在我想安装 Linux Mint 17 并拥有一个三重启动系统。如何在我的三重启动中安装 Mint 17?如何对硬盘进行分区?我想用 USB 安装它而不是使用 Windows 安装程序。

linux-mint system-installation

7
推荐指数
1
解决办法
1万
查看次数

在最后一行之前插入文本 N 行

我想在最后一行之前的两行中插入一个新行。所以如果我的原始文件是:

1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

结果应该是

1
2
3
New line
4
5
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing ed

7
推荐指数
3
解决办法
5262
查看次数