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
如何在bash中剪切一些文本_Bash - Fatal编程技术网

如何在bash中剪切一些文本

如何在bash中剪切一些文本,bash,Bash,在cat my file之后,我得到了以下输出: pm/or { distribution: 'Old disctribution ', version_1: '6.5 (New)', version_2: '2.36' } 我只想从这个文件中剪切,例如分发名:Old distribution,或者仅从版本_2:2.36 作为输出,我希望得到: 旧分配 有人能帮我怎么做吗?试着用“作为分隔符来剪切它 比如: cut -d \' -f 2,6 myfile.txt > output.txt

在cat my file之后,我得到了以下输出:

pm/or { distribution: 'Old disctribution ', version_1: '6.5 (New)', version_2: '2.36' }
我只想从这个文件中剪切,例如分发名:Old distribution,或者仅从版本_2:2.36

作为输出,我希望得到: 旧分配


有人能帮我怎么做吗?

试着用
作为分隔符来剪切它 比如:

cut -d \' -f 2,6 myfile.txt > output.txt
我只是试试这个,它工作正常

awk -F\' '{ print $2 }' file


看起来好像您正在尝试解析JSON。如果您的文件格式几乎是JSON,但不完全是JSON,那么最好的办法可能是将其重塑为正确的JSON,然后使用正确的JSON工具

 sed 's%^pm/or %%;s%\([_A-Za-z0-9]*\):%"\1":%g' myfile.txt | jq '.distribution'

jq
工具可从

获得。您可以使用
awk
获得
分布
键的值,如下所示:

awk -F"'" '{for(;i<=NF;i++) {if($i ~ /distribution: $/) print $(i+1)}}' file

awk-F“'”{for(;iBash参数扩展也可以从脚本中进行,以处理所需文本的提取:

#!/bin/bash

temp=`cat dat/catfile.txt`                     # read file into temp
temp="${temp##*ion: \'}"                       # remove begin to 'ion: \''
echo "string '${temp%%[^a-z]\',*version*}'"    # remove end to first version
输入:

$ cat dat/catfile.txt
pm/or { distribution: 'Old disctribution ', version_1: '6.5 (New)', version_2: '2.36' }
$ cutcat.sh
string 'Old disctribution'
输出:

$ cat dat/catfile.txt
pm/or { distribution: 'Old disctribution ', version_1: '6.5 (New)', version_2: '2.36' }
$ cutcat.sh
string 'Old disctribution'

(拼写与原文相同)

sed
脚本中的第二个命令不完全正确;如果您在冒号前引用了包含文本的字符串,它会弄乱您的数据。您的示例数据看起来很简单,我觉得我可以安全地切入这个特定的角点。它可能不是JSON。JSON不使用单引号。嗯,是的。我应该这也是一个问题,但这已经变得比我想象的要复杂一些了。