Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.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
Linux grep文本文件中的多个字符串并将其导出到CSV_Linux_Bash_Shell - Fatal编程技术网

Linux grep文本文件中的多个字符串并将其导出到CSV

Linux grep文本文件中的多个字符串并将其导出到CSV,linux,bash,shell,Linux,Bash,Shell,我有一个shell脚本,它正在生成多个输出 比如说 #/bin/bash var1=`cat test.json | grep "test" | awk -F ' ' '{print $1}'` var2=`cat test.json | grep -e "new" | awk -F ':' '{print$5}'` var3=`cat test.json | grep -e "new-test" | awk -F ':' '{print$8}'` echo $var1,var2,var3

我有一个shell脚本,它正在生成多个输出

比如说

#/bin/bash
var1=`cat test.json | grep "test" | awk -F ' ' '{print $1}'`
var2=`cat test.json | grep -e "new" | awk -F ':' '{print$5}'`
var3=`cat test.json | grep -e "new-test" | awk -F ':' '{print$8}'`

echo $var1,var2,var3
第一个var1的输出是

1 
2 
3 
4 
5
第一个var2的输出是

3
4
5
6
7
第一个var3的输出是

834
45
345
73
23
如何创建具有以下格式的csv文件

1,3,834
2,4,45
3,5,345
4,6,73
5,7,23

paste
命令与bash进程替换一起使用:

paste -d, <(echo "$var1") <(echo "$var2") <(echo "$var3")
确保引用变量以维护其中的换行符


您的管道可以更简单:不需要cat,awk可以像grep那样:

paste -d, \
    <(awk -F ' ' '/test/     {print $1}' test.json) \
    <(awk -F ':' '/new/      {print $5}' test.json) \
    <(awk -F ':' '/new-test/ {print $8}' test.json)
paste-d\

paste
命令与bash进程替换一起使用:

paste -d, <(echo "$var1") <(echo "$var2") <(echo "$var3")
确保引用变量以维护其中的换行符


您的管道可以更简单:不需要cat,awk可以像grep那样:

paste -d, \
    <(awk -F ' ' '/test/     {print $1}' test.json) \
    <(awk -F ':' '/new/      {print $5}' test.json) \
    <(awk -F ':' '/new-test/ {print $8}' test.json)
paste-d\

显示
test.json
不建议使用正则表达式解析json。请将
cat foo | grep“bar”
替换为
grep“bar”foo
cat
用于连接,不用于打印。请避免“给我代码”问题。而是显示您正在处理的脚本,并说明问题所在。另请参见显示
test.json
不建议使用正则表达式解析json。请将
cat foo | grep“bar”
替换为
grep“bar”foo
cat
用于连接,不用于打印。请避免“给我代码”问题。而是显示您正在处理的脚本,并说明问题所在。另请参见下面给出的错误new1.sh:第19行:意外标记附近的语法错误
('new1.sh:line 19:
paste我特别使用了bash语法。请确保您的shebang行是
#!/bin/bash
,并且您没有像
sh myscript.sh
那样调用脚本,而是像
bash myscript.sh
那样调用下面的eerror new1.sh:第19行:意外标记附近的语法错误
('new1.sh:19行:
粘贴我特别使用了bash语法。确保您的shebang行是
#!/bin/bash
,并且您没有像
sh myscript.sh
那样调用脚本,而是像
bash myscript.sh