小编onc*_*nce的帖子

使用 jq 将带有数组的 tsv 转换为 JSON

我发现jq对于将 tsv 转换为 JSON 文件非常有帮助,但是,我想弄清楚当我的 tsv 中有数组时如何使用 jq 来实现:

name    age    pets
Tim    15    cats,dogs
Joe    11    rabbits,birds
...
Run Code Online (Sandbox Code Playgroud)

理想的 JSON:

[
 {
  name: "Tim",
  age: "15",
  pet:["cats","dogs"]
 },
  name: "Joe",
  age: "11",
  pet:["rabbits","birds"]
 }, ...
]
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的命令:

cat file.tsv | jq -s  --slurp --raw-input --raw-output 'split("\n") | .[1:-1] | map(split("\t")) |
        map({"name": .[0],
             "age": .[1],
             "pet": .[2]})'
Run Code Online (Sandbox Code Playgroud)

上述命令的输出是:

[
 {
  name: "Tim",
  age: "15",
  pet:"cats,dogs"
 },
  name: "Joe",
  age: "11",
  pet:"rabbits,birds"-
 }, ...
]
Run Code Online (Sandbox Code Playgroud)

csv arrays bash json jq

6
推荐指数
2
解决办法
4691
查看次数

vue element-ui 获取表格行索引

我只想向表格列的第一行添加一个按钮(在示例代码中标有“选项”)。有没有简单的方法来检查 v-if 的行索引v-if="scope.row.index === 0"scope.row.index不会在这里工作。

<el-table :data="mydata">
<!-- more columns -->
  <el-table-column prop="option" label="Option">
    <template slot-scope="scope">
      <div v-if="scope.row.index === 0">
        <el-row>
          <el-col>
            <el-input v-model="scope.row.option"/>
          </el-col>
          <el-col>
            <el-button @click="">Check</el-button>
          </el-col>
      </el-row></div>
      <div v-else>
        <el-input v-model="scope.row.option" />
      </div>
    </template>
  </el-table-column>
<!-- more columns -->
</el-table>
Run Code Online (Sandbox Code Playgroud)

row html-table vue.js element-ui

3
推荐指数
1
解决办法
1万
查看次数

unix awk列等于变量

我想打印两列等于变量的行,例如输入:

2607s1  NC_000067.6 95.92   49  1   1   3   50  1e-14   84.2
2607s1  NC_000067.6 97.73   44  1   0   7   50  4e-14   84.2
2607s1  NC_000067.6 97.67   43  1   0   8   50  1e-13   75.0
Run Code Online (Sandbox Code Playgroud)

和第一列和最后一列的变量:

a="2607s1"; b="84.2"
Run Code Online (Sandbox Code Playgroud)

并使用awk命令,输出:

2607s1  NC_000067.6 95.92   49  1   1   3   50  1e-14   84.2
2607s1  NC_000067.6 97.73   44  1   0   7   50  4e-14   84.2
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但不工作:

awk -v '$1==$a' && '$10==$b' test_file
cat test_file|awk '$1=="($a)" && $10=="($b)"'
cat test_file|awk '$1==($a) && $10==($b)'
cat test_file|awk '$1=="$a" && $10=="$b"'
Run Code Online (Sandbox Code Playgroud)

而且,我在一个while循环中运行它,所以$a并且 …

unix variables bash awk while-loop

2
推荐指数
1
解决办法
1万
查看次数

如何在bash中设置一系列数组元素

我有一个零数组

declare -a MY_ARRAY=( $(for i in {1..100}; do echo 0; done) )
Run Code Online (Sandbox Code Playgroud)

例如,如何将 12-25th 设置为“1”?我试过了:

MY_ARRAY[12..25]=1
MY_ARRAY[12:25]=1
MY_ARRAY[12-25]=1  
Run Code Online (Sandbox Code Playgroud)

都没有工作..

范围 12-25 将是从另一个文件获得的变量。我正在寻找一个简单的解决方案,最好不要参与循环

请帮忙

arrays bash

2
推荐指数
2
解决办法
6909
查看次数

如何在bash中一个接一个地打印列?

例如,是否有更好的方法可以将两列或更多列打印到一列中

输入文件

AAA    111
BBB    222
CCC    333
Run Code Online (Sandbox Code Playgroud)

输出:

AAA
BBB
CCC
111
222
333
Run Code Online (Sandbox Code Playgroud)

我只能想到:

cut -f1 input.file >output.file;cut -f2 input.file >>output.file
Run Code Online (Sandbox Code Playgroud)

但是,如果有很多列,或者我想将输出传递给其他命令,那就不好了sort.

还有其他建议吗?非常感谢你!

bash awk cut sed multiple-columns

2
推荐指数
2
解决办法
898
查看次数

标签 统计

bash ×4

arrays ×2

awk ×2

csv ×1

cut ×1

element-ui ×1

html-table ×1

jq ×1

json ×1

multiple-columns ×1

row ×1

sed ×1

unix ×1

variables ×1

vue.js ×1

while-loop ×1