Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在域上用空格连接_Bash_Join_Sed - Fatal编程技术网

Bash 在域上用空格连接

Bash 在域上用空格连接,bash,join,sed,Bash,Join,Sed,可以在第二个字段上连接这两个文件吗? 我正努力从join身上得到任何东西 join -j2 -t "," file1.csv file2.csv 上面的命令没有输出,没有错误 ommitting-t“,”sorta可以工作,但是字段现在很混乱,尽管排序符合我的要求 Academia" "http://www.lackadaisycats.com/comic/1264990398.jpg","Lackadaisy 83,"Lackadaisy Arithmophobia" "http://ww

可以在第二个字段上连接这两个文件吗? 我正努力从join身上得到任何东西

join -j2 -t "," file1.csv file2.csv
上面的命令没有输出,没有错误

ommitting-t“,”sorta可以工作,但是字段现在很混乱,尽管排序符合我的要求

Academia" "http://www.lackadaisycats.com/comic/1264990398.jpg","Lackadaisy  83,"Lackadaisy
Arithmophobia" "http://www.lackadaisycats.com/comic/1238468042.jpg","Lackadaisy  12,"Lackadaisy
我只是在第二列的基础上努力让join工作。我相信空间正在把事情搞砸

我想我可以将第二个字段中的空格转换为一个uu或删除多余的“Lackadaisy”,但这似乎有点老土

编辑:我删除了第二个字段中的“Lackadaisy”,然后重新运行

join -j2 -t "," file1.csv file2.csv
但仍然没有得到所需的输出:(

file1.csv

"http://www.lackadaisycats.com/comic/1264990398.jpg" ,"Lackadaisy Academia" 
"http://www.lackadaisycats.com/comic/1238468042.jpg" ,"Lackadaisy Arithmophobia" 
"http://www.lackadaisycats.com/comic/1292845744.jpg" ,"Lackadaisy Backalley" 
"http://www.lackadaisycats.com/comic/1257460213.jpg" ,"Lackadaisy Balderdash" 
"http://www.lackadaisycats.com/comic/1213771589.jpg" ,"Lackadaisy Bedlamite" 
"http://www.lackadaisycats.com/comic/1265228812.jpg" ,"Lackadaisy Bee-line" 
"http://www.lackadaisycats.com/comic/1313510695.jpg" ,"Lackadaisy Begorra" 
"http://www.lackadaisycats.com/comic/1168262128.jpg" ,"Lackadaisy Benediction" 
"http://www.lackadaisycats.com/comic/1190620435.jpg" ,"Lackadaisy Blindside" 
"http://www.lackadaisycats.com/comic/1213855098.jpg" ,"Lackadaisy Blitzwagen"
文件2.csv

83 ,"Lackadaisy Academia"
12 ,"Lackadaisy Arithmophobia"
100 ,"Lackadaisy Backalley"
78 ,"Lackadaisy Balderdash"
19 ,"Lackadaisy Bedlamite"
84 ,"Lackadaisy Bee-line"
108 ,"Lackadaisy Begorra"
24 ,"Lackadaisy Benediction"
41 ,"Lackadaisy Blindside"
18 ,"Lackadaisy Blitzwagen"

使用:GNU bash,版本4.3.0(1)-发行版(i686 pc linux GNU)

似乎是
file1.csv
中第二个字段后面的空格引起了问题。鉴于您将字段分隔符设置为
,我不知道有什么方法可以忽略这些尾随空格

一种解决方法是通过传递
file1.csv
来消除尾随空格,并将输出提供给via。生成的命令与原始命令非常接近

join  -j2 -t "," <(sed 's/\s\+$//' file1.csv) file2.csv
"Lackadaisy Academia","http://www.lackadaisycats.com/comic/1264990398.jpg" ,83 
"Lackadaisy Arithmophobia","http://www.lackadaisycats.com/comic/1238468042.jpg" ,12 
"Lackadaisy Backalley","http://www.lackadaisycats.com/comic/1292845744.jpg" ,100 
"Lackadaisy Balderdash","http://www.lackadaisycats.com/comic/1257460213.jpg" ,78 
"Lackadaisy Bedlamite","http://www.lackadaisycats.com/comic/1213771589.jpg" ,19 
"Lackadaisy Bee-line","http://www.lackadaisycats.com/comic/1265228812.jpg" ,84 
"Lackadaisy Begorra","http://www.lackadaisycats.com/comic/1313510695.jpg" ,108 
"Lackadaisy Benediction","http://www.lackadaisycats.com/comic/1168262128.jpg" ,24 
"Lackadaisy Blindside","http://www.lackadaisycats.com/comic/1190620435.jpg" ,41 
"Lackadaisy Blitzwagen","http://www.lackadaisycats.com/comic/1213855098.jpg" ,18 

join-j2-t“,”另一个选项是使用
awk
(如果有尾随空格,可以使用
awk
sub
函数删除它们)

  • 我们将第二个文件加载到内存中,创建一个数组,对两个文件上的公共列进行索引,并分配第2列的值
  • 加载第二个文件后,我们移动到第一个文件,并使用数组值修改最后一列。我们使用
    sub
    函数删除尾随空格

您的期望输出是什么?期望输出是:“,”Lackadaisy Academy“,82
$ awk 'BEGIN{FS=OFS=" ,"}NR==FNR{a[$2]=$1;next}{sub(/ *$/,"",$NF);$NF=$NF OFS a[$NF]}1' file2 file1
"http://www.lackadaisycats.com/comic/1264990398.jpg" ,"Lackadaisy Academia" ,83
"http://www.lackadaisycats.com/comic/1238468042.jpg" ,"Lackadaisy Arithmophobia" ,12
"http://www.lackadaisycats.com/comic/1292845744.jpg" ,"Lackadaisy Backalley" ,100
"http://www.lackadaisycats.com/comic/1257460213.jpg" ,"Lackadaisy Balderdash" ,78
"http://www.lackadaisycats.com/comic/1213771589.jpg" ,"Lackadaisy Bedlamite" ,19
"http://www.lackadaisycats.com/comic/1265228812.jpg" ,"Lackadaisy Bee-line" ,84
"http://www.lackadaisycats.com/comic/1313510695.jpg" ,"Lackadaisy Begorra" ,108
"http://www.lackadaisycats.com/comic/1168262128.jpg" ,"Lackadaisy Benediction" ,24
"http://www.lackadaisycats.com/comic/1190620435.jpg" ,"Lackadaisy Blindside" ,41
"http://www.lackadaisycats.com/comic/1213855098.jpg" ,"Lackadaisy Blitzwagen" ,18