我有一个这样的文件。
[Guest]
[AAD_987d7f2f57d2]
[mhope]
[SABatchJobs]
[svc-ata]
[svc-bexec]
[svc-netapp]
[dgalanos]
[roleary]
[smorgan]
如何从文件中删除 '[' 和 ']' 以便我可以得到如下输出
Guest
AAD_987d7f2f57d2
mhope
SABatchJobs
svc-ata
svc-bexec
svc-netapp
dgalanos
roleary
smorgan
使用
sed
:sed
命令是,意思是用s/pattern/replacement/modifiers
替换替换模式。g
修饰符表示全局,否则只会替换第一个匹配项。[...]
是一个字符类,因此括号内的任何字符都匹配。]
关闭字符类,除非它在里面的第一个位置。因为我们想将它包含在我们的角色类中,所以我们把它放在第一位。sed -i '...'
就地编辑文件。您也可以
grep -P
像我在其他问题中建议的那样使用:删除特定字符的“标准”实用程序是
tr
:所以例如
与 GNU sed 不同,tr 只读取和写入标准流;但是,您可以使用临时文件模拟“就地”编辑:
或使用
sponge
package 中的命令moreutils
:您还可以使用
awk
- 例如将文件的行拆分为由and分隔的字段并仅打印第二个:]
[
您可以使用相同的 tmpfile 技巧来模拟“就地”编辑,或者使用 GNU awk(又名 gawk),使用
inplace
模块: