我有一个纯文本文档,我想在LaTeX中编译它。但是,有时它有"#“、"$”、"%“、"&”和"_“等字符。要在LaTeX中正确编译,我必须首先将这些字符替换为"#“、”$“、"\%”、“&”和"_“。我在sed中使用了这一行
sed -i 's/\#/\\\#/g' ./file.txt
sed -i 's/\$/\\\$/g' ./file.txt
sed -i 's/\%/\\\%/g' ./file.txt
sed -i 's/\&/\\\&am
这个BASH脚本可以像预期的那样工作。我有一个包含数据行的变量($foo),我告诉bash在新行处分离,然后循环遍历变量。
#!/bin/bash
foo="
Original Line1
Original Line2
Original Line3
"
IFS=正如预期的那样,数据是在它自己的线路上的。Original Line1
Original Line2
Original Line3我将这一行添加到脚本中,以便将文本"Line2“替换为$foo变量中的”示例“。foo=$( echo $foo | sed "s|Line2|EXAMPLE|"
我有一个.txt文件,在每个新行之间加上日期和时间戳,然后是后面的其他文本。我只想在时间戳和名称之后保留文本,那么如何使用sed替换在bash中对其进行编码呢?时间戳具有不同的字符长度,名称也是如此。
所以输入将是-
[11/26/17, 9:08:01 AM] Sean: sample text sample text
[8/8/18, 10:54:23 AM] Keith: sample sample sample
[3/8/18, 6:40:25 AM] John Doe: more text more text more text
[12/8/18, 12:40:30 AM] Jane
我正在尝试编写一个bash脚本,该脚本接受几个变量,然后使用grep对给定的文件进行查找/替换,以获得包含该字符串的文件列表。我认为我遇到的问题是在sed中看到变量,我不确定它还可能是什么。
if [ "$searchFiles" != "" -a "$oldString" != "" -a "$newString" != "" ]; then
echo -en "Searching for '$searchFiles' and replacing '$oldS
我正在尝试编写一个脚本来交换文件中的文本:
sed s/foo/bar/g myFile.txt > myFile.txt.updated
mv myFile.txt.updated myFile.txt
在shell中,我将调用sed程序,该程序交换myFile.txt中的文本,并将更改后的文本行重定向到另一个文件。然后mv将.updated txt文件移动到myFile.txt,并覆盖它。
我需要注意“特殊字符”,所以我使用正则表达式来实现。
我写道:
#!/bin/sh
#First, I set up some more descriptive variables for my
我试图使用bash从变量中删除两个已知标记之间的未知字符。
例如
string="This text d #! more text jsdlj end and mo{re ;re end text.text"
我想删除最后一个单词“文本”(在结束词之前)和之后的第一个单词“结束”之间的所有字符。即在最后一次出现“文本”之后,第一次出现“结束”,但保留这两个标记)
result="This text d #! more text end and mo{re ;re end text.text"
我将使用它作为find -print0 _ xargs -0 bash
我使用sed来查找和替换我拥有的SAS文件中的模式,而不是单独更改它们。问题是,我正在尝试替换宏变量,当我使用这个符号时,它没有正确地处理。
Here's my code:
sed -ie 's/user=&uid./user=&sysuserid./g' *_table_*.sas
每当我运行这个命令时,它似乎都会添加并对原始文本执行各种古怪的操作。
问题:如何用sed命令替换包含符号的文本?
我正在更新一个bash脚本(针对Mac),我已经有一段时间没有看到它了,我想把一个文件名的字符复制到__ (两个下划线)。我目前使用的是抓取前6个字符,并且粘贴得很好,但我不确定如何将它更改为将所有内容复制到前两个下划线(而不是_或单个下划线)。
#This copies the first 6 characters of the FILENAME
#and adds it to the top of the same file
#!/bin/bash
for filename in ./*.txt
do
text="${filename:2:6}"
echo
我有一个脚本,需要使用一个正则表达式从两个不同的文本中筛选出html标记。我需要一个regex的原因是,传递给脚本的数据可能是任何一种文本格式。除了几个不同之处外,文本一般都有相同的语法。
这是我的剧本:
#!/bin/bash
text1="<CENTER><B>Jupiter: The Great Yellow Spot<BR>"
text2="<b> Curiosity Rover Finds a Clay Cache on Mars </b> <br> "
regex="
因此,我试图用多行替换文件中的行内容,但无法使其工作。详情如下:
文本文件:/home/user1/file1.txt
文件内容:
The quick brown fox
The quick brown fox jumps over the lazy fat dog
Little brown and the lazy fat dog
Lazy dog and the fat lion
string1="The quick brown fox jumps over the lazy fat dog"
string2="The quick little black fox
我有这样一个sed命令,用于搜索和替换文件中的字符串:
sed -i -e 's/`db1`./`db2`./g' result/files1.sql
它可以很好地将db1替换为: db2 /fil1.sql文件中的db2
但是,当我将它更改为bash和变量格式时,它就不能工作了。
sed -i -e "s/`${mydbname}`./`${mydbname2}`./g" "${mypath}"
我会犯这样的错误:
./mycoolscript: line 241: db1: command not found
./mycoolscript:
我在脚本上使用了一个命令,它运行得很好。我需要在该命令的结果后面添加一些文本。
命令:
ssh target_server "/home/directory/somescript.sh" | tail -1
我想在上面的命令结果中添加一些文本。
Sample结果:
This is the original result
Sample期望的结果:
This is the original result - target_server