如何使用搜索和替换来更改文件的内容。
我需要能够更改“全部为无”和/或“全部为无”,而不必每次都手动执行数百行。
下面是一个示例文本文件,右边是行号。我已经知道如何打开和关闭文件以进行写入。
线
1define_filter absolute_minimal_filter ------- all
2 define_filter atma_basic_filter -------- ----- none
3define_filter atma_communication_filter -- all
4 define_filter atma_health_filter -------------无
5 define_filter atma_misc_filter --------------- 所有
6 define_filter atma_performance_filter ---- 无
7 define_filter atma_supplemental_filter ---- 无
我试图在下面保留 $if 并
希望以下输出
$if
bash 通过执行
$ 替换 来妨碍
$ sed -e 's:\\$:\\$:g' <<ENDOFFILE
> $if
> ENDOFFILE
Run Code Online (Sandbox Code Playgroud)
或者
$ tr '$' '\$' <<ENDOFFILE
> $if
> ENDOFFILE
Run Code Online (Sandbox Code Playgroud)
有没有办法将 $keywords 保留
到 stdout 而不
在 stdin 中显式地将它们转义出来?
我应该在尝试之前切换到另一个 shell 吗?
我想递归地执行以下命令
sed -i 's/href=\"1\//href=\"\/1\//g' ./*
Run Code Online (Sandbox Code Playgroud)
以便它将所有子目录中的所有 href="1 替换为 href="/1。是否有一个标志可以添加到此命令中以实现我想要的结果?
我正在创建一个连接到服务器并将输出转储到临时文件的脚本。我想在脚本中使用 sed 从临时文件中获取特定信息。输出总是有 80 个字符的虚线,然后是我想要的信息,然后是 Disconnected 语句。
如果它只是一行,我已经得到了一个正则表达式,问题是我如何对换行符进行分组?
正则表达式
-\{80\}[\r\n]*\(.*\)[\r\n]\{4\}Disconnected
Run Code Online (Sandbox Code Playgroud)
文件
...
--------------------------------------------------------------------------------
The information that I want to get can be a single line or multiple lines.
Another line to grab.
And this should be caught as well.
Disconnected ...
Run Code Online (Sandbox Code Playgroud)
期望输出
The information that I want to get can be a single line or multiple lines.
Another line to grab.
And this should be caught as well.
Run Code Online (Sandbox Code Playgroud) 我有 linux 机器 red-hat 5.1
如何仅替换正确的单个字符(字符串的最一侧)
来自我的 sed 语法的示例(不好,因为它替换了两个“a”字符) l
echo machine1a | sed s'/a/b/g'
mbchine1b
Run Code Online (Sandbox Code Playgroud)
但请求的答案应该是 - machine1b 而不是 mbchine1b
我有一个 226GB 的日志文件,我想把split它分成几块以便于xz阅读。问题是我的可用空间只剩下 177GB 的空间。
有没有办法split在不保留原始文件的额外副本的情况下将文件分成一半或分成N个块?
$ split myFile.txt
$ ls -halF
-rw-r--r-- 1 user group 35 Dec 29 13:17 myFile.txt
-rw-r--r-- 1 user group 8 Dec 29 13:18 xaa
-rw-r--r-- 1 user group 3 Dec 29 13:18 xab
-rw-r--r-- 1 user group 5 Dec 29 13:18 xac
-rw-r--r-- 1 user group 10 Dec 29 13:18 xad
-rw-r--r-- 1 user group 8 Dec 29 13:18 xae
-rw-r--r-- 1 user group 1 Dec …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的 MySQL 备份文件(来自 mysqldump),其中的表按字母顺序排列。我的恢复失败,我想从备份文件中的下一个表开始。(我已经纠正了这个问题,这实际上并不是一个关于 MySQL 恢复等的问题。)
我想做的是获取我的备份文件,例如backup.sql并修剪文件的开头,直到看到这一行:
-- Table structure for `mytable`
Run Code Online (Sandbox Code Playgroud)
然后之后的所有内容都将最终出现在我的结果文件中,例如backup-secondhalf.sql. 由于文件是 bzip2 压缩的,这有点复杂,但这应该不是什么大问题。
我想我可以这样做:
$ bunzip2 -c backup.sql.bz2 | grep --text --byte-offset --only-matching -e '--Table structure for table `mytable`' -m 1
Run Code Online (Sandbox Code Playgroud)
这将为我提供文件中我想要修剪的字节偏移量。然后:
$ bunzip2 -c backup.sql.bz2 | dd skip=[number from above] | bzip2 -c > backup-secondhalf.sql.bz2
Run Code Online (Sandbox Code Playgroud)
不幸的是,这需要我在文件上运行 Bunzip2 两次并读取所有这些字节两次。
有没有办法一次性完成这一切?
我不确定我的 sed-fu 是否足够强大来执行“删除正则表达式之前的所有行,然后让文件的其余部分通过”表达式。
这是在 Debian Linux 上,所以我有可用的 GNU 工具。
我有一个用 utf8 编码的 bash 脚本。
在脚本中,我使用 sed 命令§作为分隔符。
现在,当我运行执行此脚本时会sed抱怨分隔符。
如果我使用普通字符作为 ex 的分隔符,@那么一切正常。
我已经在 putty[set utf8 in putty] 中查看了脚本,并且字符看起来很好。
还有来自locale命令的Linux 默认字符集显示
LC_CSET=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
可能出了什么问题?
早些时候,我曾经对 shell 脚本使用 windows-1252 编码,这曾经有效。
如果该行包含 Z(capital),我想使用 sed 将任何 x(small) 替换为 0
x,Z,y
y,X,z,
Y,z,x
x,Z,y
Run Code Online (Sandbox Code Playgroud) 我有 ssh 密钥,类似这样的东西
-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
当然这个键不起作用。当我在做手工的时候,像这样的东西
-----BEGIN RSA PRIVATE KEY-----
my_super_secret_password
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
有用。当我删除 this-----BEGIN RSA PRIVATE KEY-----和 this 时-----END RSA PRIVATE KEY-----,我的 ssh-key 不起作用。
所以,问题。如何,我可以通过一些命令自动制作,比如sedor awk,或任何其他命令,我如何从这个字符串中制作
-----BEGIN RSA PRIVATE KEY----- my_super_secret_password -----END RSA PRIVATE KEY-----
这三个字符串
-----BEGIN RSA PRIVATE KEY-----
my_super_secret_password
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。如果你知道关于这个问题的任何其他答案,我很高兴听到你的消息。原因,为什么我需要它,因为我在AWS Secret Manager. 因此,该管理器仅将密钥存储在一行中。