Unix 如何在用空格分隔的文本文件中分隔名称列表

Unix 如何在用空格分隔的文本文件中分隔名称列表,unix,awk,grep,Unix,Awk,Grep,需要拆分文件中由空格分隔的文本 范例 Smith,John Jones,Sarah Tucker,Sam Tucker,Sarah 我如何将其分解成这样: Smith,John Jones,Sarah Tucker,Sam Tucker,Sarah 我尝试了awk-F'{print$0}文件名,但这无法读取中间的空格。谢谢大家! 使用awk您可以遍历每个由空格分隔的字段并打印它们: $ cat file Smith,John Jones,Sarah Tucker,Sam Tuc

需要拆分文件中由空格分隔的文本

范例

Smith,John  Jones,Sarah  Tucker,Sam  Tucker,Sarah 
我如何将其分解成这样:

Smith,John
Jones,Sarah
Tucker,Sam
Tucker,Sarah

我尝试了
awk-F'{print$0}文件名
,但这无法读取中间的空格。谢谢大家!

使用
awk
您可以遍历每个由空格分隔的字段并打印它们:

$ cat file
Smith,John  Jones,Sarah  Tucker,Sam  Tucker,Sarah
$awk'{for(i=1;i
或


如果字段以制表符分隔

tr '\t' '\n' < file
tr'\t'\n'
如果它们之间有一个或多个空格

tr -s ' ' '\n' < file
tr-s''\n'
并非所有的
tr
实现都支持这些C样式的反斜杠转义。有关替代方法,请参阅本地手册页(或者直接传递分隔符——在许多shell中,ctrl+v制表符会生成一个文本制表符,换行符可以合法地在两个单引号之间移动,而无需任何转义)

$ awk -v OFS='\n' '{$1=$1}1' file
Smith,John
Jones,Sarah
Tucker,Sam
Tucker,Sarah
tr '\t' '\n' < file
tr -s ' ' '\n' < file