Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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-linux脚本:反复将变量放在其他变量之后_Linux_Bash - Fatal编程技术网

Bash-linux脚本:反复将变量放在其他变量之后

Bash-linux脚本:反复将变量放在其他变量之后,linux,bash,Linux,Bash,我有两个变量: GrepMap=$( grep -rl "string" ~/Downloads | cut -d/ -f2 ) GrepDir=$( grep -H -r "string" ~/Downloads ) 接下来我想给他们看 echo "$GrepMap : $GrepFile 如果他在3个不同的地图/文件中找到字符串 然后我的输出是这样的: Portfolio_Macht Portfolio_Macht Project_Macht : README.md LES10 ind

我有两个变量:

GrepMap=$( grep -rl "string" ~/Downloads | cut -d/ -f2 )
GrepDir=$( grep -H -r "string" ~/Downloads )
接下来我想给他们看

echo "$GrepMap :  $GrepFile
如果他在3个不同的地图/文件中找到字符串 然后我的输出是这样的:

Portfolio_Macht
Portfolio_Macht
Project_Macht : README.md LES10 index.html
但我希望它是这样的:

Portfolio_Macht : README.md
Portfolio_Macht : LES10
Project_Macht : index.html

有人能帮忙吗?谢谢

问题在于,您正在
echo
ing一个多行字符串后跟另一个多行字符串,但您要做的是将两个多行划线分别粘贴在各自的列中。我可以想出两种方法来解决这个问题。最简单的方法是使用
粘贴
命令:

paste <(echo "$GrepMap") <(echo "$GrepFile")

说明:使用
/
作为字段分隔符,然后打印倒数第二个字段
”:“
最后一个字段。

问题在于,您正在
回送一个多行字符串,然后是另一个多行字符串,但您要做的是将两个多行划线分别粘贴在各自的列中。我可以想出两种方法来解决这个问题。最简单的方法是使用
粘贴
命令:

paste <(echo "$GrepMap") <(echo "$GrepFile")

说明:使用
/
作为字段分隔符,然后打印倒数第二个字段
最后一个字段。

你能发布个人
grep
命令的输出吗请提供一个,我们可以自己测试它。你能发布个人
grep
命令的输出吗请提供一个,我们可以自己测试它吗?好的建议,但是如果你要使用
awk
为什么还要麻烦grep呢?使用awk的模式匹配功能仅将打印应用于匹配的行,并抑制其余行。这是一个很好的建议,但是如果您要使用
awk
为什么还要使用grep呢?使用awk的模式匹配功能,仅对匹配的行应用打印,并抑制其余行。