Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/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
Shell CSH-后引号中的命令将丢失所有空格和换行符_Shell_Csh_Tcsh - Fatal编程技术网

Shell CSH-后引号中的命令将丢失所有空格和换行符

Shell CSH-后引号中的命令将丢失所有空格和换行符,shell,csh,tcsh,Shell,Csh,Tcsh,当我使用tcsh处理txt文件时,我遇到了一个问题。 我已经处理了数据,并将结果存储在变量temp中 对于以下命令,它用于对处理后的数据进行排序,并将排序后的数据存储在临时文件中。它可以产生正确的结果: echo "$temp" | sort -t , -k1n -k2 >> tempsorted 然而,由于某些原因,我不能使用临时文件。我需要将结果重定向到变量。我尝试了以下命令: set a=`echo "$temp" | sort -t , -k1n -k2` 此命令删除结果

当我使用
tcsh
处理txt文件时,我遇到了一个问题。 我已经处理了数据,并将结果存储在变量
temp

对于以下命令,它用于对处理后的数据进行排序,并将排序后的数据存储在临时文件中。它可以产生正确的结果:

echo "$temp" | sort -t , -k1n -k2 >> tempsorted
然而,由于某些原因,我不能使用临时文件。我需要将结果重定向到变量。我尝试了以下命令:

set a=`echo "$temp" | sort -t , -k1n -k2`
此命令删除结果中的所有
空格
换行符
。这样:
2739,诺斯维尔市,韦恩,诺斯维尔市|韦恩| 2739 2929,格罗斯角海岸城村,韦恩,格罗斯角海岸城村|韦恩| 2929…

有人知道这件事吗?我需要将排序结果存储在一个变量中,以便在不使用临时文件的情况下进行额外处理。Env应该是
#/bin/tcsh-f
谢谢

temp
变量中的部分内容: 部分预期结果: 我尝试了错误的解决方案: 一,

有错误消息

Illegal variable name.
Unmatched `.
二,

有错误消息

Illegal variable name.
Unmatched `.

`在tcsh中称为命令替换。默认情况下,命令替换将整个输出转换为以空格、制表符和换行符分隔的“单词”。我认为这种行为是无法改变的。请参见下面的简单示例

> cat /tmp/file
lots           of spaces
line 2
> echo `cat /tmp/file`
lots of spaces line 2
>

跨站点复制:在#1中,您是不是舒尔不应该是
echo“$temp”
?另外,如果您想检查
$a
的值,请不要忘记引用
echo“$a”
,谢谢您的回复。但是当我把
echo“$temp”| sort-t,-k1n-k2
填充到
some命令中时,它会给出“Unmatched`。”错误。在``周围加一个“”是正确的方法。您是否尝试过设置a=“`echo$temp:q | sort-t,-k1n-k2`”
Unmatched `.
> cat /tmp/file
lots           of spaces
line 2
> echo `cat /tmp/file`
lots of spaces line 2
>