如何\n使用sed命令替换换行符()?
我没试成功:
sed 's#\n# #g' file
sed 's#^$# #g' file
Run Code Online (Sandbox Code Playgroud)
我如何解决它?
我正在运行这样的命令行:
filename_listing_command | xargs -0 action_command
Run Code Online (Sandbox Code Playgroud)
在哪里filename_listing_command使用空字节来分隔文件 - 这就是xargs -0想要消费的东西.
问题是我想过滤掉一些文件.像这样的东西:
filename_listing_command | sed -e '/\.py/!d' | xargs ac
Run Code Online (Sandbox Code Playgroud)
但我需要用xargs -0.
如何将sed想要的行分隔符从换行符更改为NUL?
我正在尝试使用 sed 从文件中的一行中提取特定字符串。目前我正在使用 while 循环读取文件并搜索特定字符串。当找到该字符串时,我正在提取它,但是我需要使用 sed 来解析输出,以便我只获取两个斜杠之间的字符串(它是一个目录名,所以如果可能的话,我需要同时保留开头和结尾的斜杠)。这是我正在运行以搜索文件的循环:
#!/bin/sh
file=configFile.conf
while read line
do
if echo "$line" | grep -q "directory_root"
then DIR_ROOT="$line"
fi
done < "$file"
echo $DIR_ROOT
exit 0
Run Code Online (Sandbox Code Playgroud)
while 循环起作用并回显以下字符串:
directory_root /root/config/data/
Run Code Online (Sandbox Code Playgroud)
然后我需要使用 sed 以获得以下输出,以便将正确的目录名称传递给另一个脚本:
/root/
Run Code Online (Sandbox Code Playgroud)
是否可以使用 sed 和正则表达式从回显输出中仅提取上述内容?
谢谢
I've got file.txt which looks like this:
C00010018;1;17/10/2013;17:00;18;920;113;NONE
C00010019;1;18/10/2013;17:00;18;920;0;NONE
C00010020;1;19/10/2013;19:00;18;920;0;NONE
Run Code Online (Sandbox Code Playgroud)
And I'm trying to do two things:
$id_play as 2nd field.; with - on those lines.My attempt:
#!/usr/bin/perl
$id_play=3;
$input="./file.txt";
$result = `sed s@^\([^;]*\);$id_play;\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\)\$@\1-$id_play-\2-\3-\4-\5-\6@g $input`;
Run Code Online (Sandbox Code Playgroud)
And I'm getting this error:
sh: 1: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)
Why?