如果我运行命令cat文件| grep pattern,我将得到许多行输出。如何将所有行连接成一行,有效地将每个“\n”替换为“\”(以“”结尾,后面加空格)?
Cat文件| grep模式| xargs sed s/\n/ /g 对我没用。
如果我运行命令cat文件| grep pattern,我将得到许多行输出。如何将所有行连接成一行,有效地将每个“\n”替换为“\”(以“”结尾,后面加空格)?
Cat文件| grep模式| xargs sed s/\n/ /g 对我没用。
当前回答
在red hat linux上,我只使用echo:
Echo $(cat /some/file/name)
这将在一行中给出文件的所有记录。
其他回答
这是一个用逗号分隔输出的示例。您可以用任何分隔符替换逗号。
cat <<EOD | xargs | sed 's/ /,/g'
> 1
> 2
> 3
> 4
> 5
> EOD
生产:
1,2,3,4,5
在不带引号的bash echo中,删除回车符、制表符和多个空格
echo $(cat file)
我所知道的解决这个问题最快最简单的方法是:
当我们想用空格替换新的行字符\n时:
xargs < file
Xargs对每行字符数和所有字符的总和有自己的限制,但我们可以增加这些限制。详细信息可以通过运行命令:xargs——show-limits和手册:man xargs找到
当我们想用一个字符替换另一个字符时:
tr '\n' ' ' < file
当我们想用多个字符替换一个字符时:
tr '\n' '~' < file | sed s/~/many_characters/g
首先,我们将换行符\n替换为波浪号~(或选择文本中没有出现的另一个唯一字符),然后我们将波浪号替换为任何其他字符(many_characters),并对每个波浪号执行此操作(标记g)。
通过管道输出到xargs将每一行输出连接到带有空格的一行:
grep pattern file | xargs
或任何命令。Ls | xargs。xargs输出的默认限制是~4096个字符,但是可以使用eg来增加。Xargs -s 8192。
Grep Xargs
在red hat linux上,我只使用echo:
Echo $(cat /some/file/name)
这将在一行中给出文件的所有记录。