我有一个与linux中的文本选择和替换有关的简单查询。我使用的是sed命令。我有以下案文:
你好世界,我只是简单的文字展示。
现在我想打印到"hello world“,只有我可以在linux中使用下面的命令来完成它。
echo "hello world, I am just simple text for display." | sed 's/, I am.*//g'
现在,我想要完全相反的这个函数,如何通过使用一个简单的命令(如sed )来删除"hello“。
所需产出:
,我只是简单的文字展示。
我更喜欢使用linux命令(sed等)。
我需要在linux中从字符串中提取一组字符,这些字符包含在静态字符串和第一个数字之间。
一个简单的例子应该是有用的:
基本字符串:hello my 1.0.jar
静态字符串:hello-world-
目标:my_name
我在试着
ls *.jar | sed 's/(?<=hello-world-)(.+?(?=-[0-9]))/\1/'
但不幸的是我不明白我错在哪里
我想用sed将…。中的内容替换为目标key=new_string
more /tmp/file
my.uri=http://[linux123]:8080
我们试试这个
key=new_string
sed s"/\[*\]/$key/g" /tmp/file
但文件没有更改
more file
my.uri=http://[linux123]:8080
我的苏醒怎么了?
预期结果应为(不带方括号)
more file
my.uri=http://new_string:8080
假设我有一个以Unix格式创建的文件。现在,在将该文件发送到窗口之前,必须完成EOL转换。
我需要在bash中这样做,这就是我到目前为止所拥有的:
为了简单起见,假设我的文件名为file_linux.txt,它提供以下输出:
cat -A file_linux.txt
first line$
second line$
third line$
file file_linux.txt
file_linux.txt: ASCII text
因此,似乎我只需要在$符号之前添加回车(^M或\r)。
我的想法是使用sed将$替换为\r$,方法如下:
sed 's/$/\r$/g' fil
我使用sed表达式将直引号转换为卷曲引号。我想把"Linux程序员手册“转换成"Linux程序员手册”。我需要它来检测之前是否有一个非空格字符,并直接引用。如果有,用卷曲引号代替直引号。我试过这个:
sed "s/\S'\S/’/"
但这也导致它取代了非空白字符:
Linux programme’ manual
我正在尝试用一个换行符替换a6数字后面的空格,这是我尝试使用的
sed 's/a\d{6}\s\+/\n/' old > new
例如:
a123456 this is a sentence
将成为:
a123456
this is a sentence
我也对linux中允许我这样做的任何其他程序开放,比如awk、perl或bash。