小编Ini*_*ian的帖子

Linux:使用文件中的一个记录实例提取值

我只想提取那些在输入文件中只出现一次的记录

输入文件1

    CHEMBL184618
    CHEMBL184618
    CHEMBL198362
    CHEMBL198362
    CHEMBL218394
    CHEMBL218394
    CHEMBL221959
    CHEMBL221959
    CHEMBL24828 
    CHEMBL24827
Run Code Online (Sandbox Code Playgroud)

预期产出

    CHEMBL24828
    CHEMBL24827
Run Code Online (Sandbox Code Playgroud)

我已经完成了排序Filename.txt | uniq -d查找重复的ID并将它们保存在单独的文件中.然后我找到排序Filename.txt | uniq -c.第三步是从唯一ID中删除重复的ID.我想要一种有效的方法.

linux bash awk

0
推荐指数
1
解决办法
54
查看次数

在bash中循环浏览所有扩展名为.txt的文件

我正在尝试遍历文件夹中的文件并测试.txt扩展名。但是我收到以下错误:“ awk:无法打开=(没有这样的文件或目录)

这是我的代码:

!/bin/bash

files=$(ls);
for file in $files
  do
  # extension=$($file | awk -F . '{ print $NF }');
  if [ $file | awk -F . "{ print $NF }" = txt ]
    then
      echo $file;
    else
      echo "Not a .txt file";
  fi;
done;
Run Code Online (Sandbox Code Playgroud)

bash shell

0
推荐指数
1
解决办法
2223
查看次数

使用bash查找并替换json文件中的值

我有几个.json与此类似的文件。

{
    "AcquisitionNumber": 1,
    "TotalReadoutTime": 0.035,
    "IntendedFor": "func/sub-02_task-rest_run-01_bold.nii.gz"
}
Run Code Online (Sandbox Code Playgroud)

我想使用 bash 变量更改“IntendedFor”行中的 sub 编号,循环遍历不同的 subs。例如,如果 sub 是 03:

sub=03
echo $sub
03
Run Code Online (Sandbox Code Playgroud)

如何使用此 bash 变量更改sub-02to的值sub-03

bash json

0
推荐指数
1
解决办法
3869
查看次数

根据来自CSV的列值获取行

我有以下数据的CSV

10.000.00.00,D3,1
10.001.00.00,C4,2
10.002.00.00,C5,2
10.000.88.99,B1,3
10.000.00.00,B2,3
10.000.00.00,C6,3
10.000.99.00,D1,3
Run Code Online (Sandbox Code Playgroud)

尝试下面的代码

cat Data.csv | awk -F , '$3 == "3" { print }'
Run Code Online (Sandbox Code Playgroud)

只需要获取最后值为3的行。

请让我知道该怎么做

awk

0
推荐指数
1
解决办法
160
查看次数

使用 awk 或 sed 从文件中删除连续的重复单词

我的输入文件如下所示:

“true true, rohith Rohith;
cold burn, and fact and fact good good?”
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

"true, rohith Rohith;
cold burn, and fact and fact good?"
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 awk,但无法获得所需的结果。

awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s ",$i,FS)}{printf("\n")}' input.txt
Run Code Online (Sandbox Code Playgroud)

有人可以在这里帮助我。

问候, 罗希斯

unix awk

0
推荐指数
1
解决办法
724
查看次数

如何删除 Kubernetes 命名空间上的标签

我像这样标记了一个 Kubernetes 命名空间:

kubectl label namespace kube-system name=kube-system
Run Code Online (Sandbox Code Playgroud)

我如何摆脱这个标签?

kubernetes kubectl

0
推荐指数
1
解决办法
2901
查看次数

使用 awk 将第一个字符设置为小写 UNIX

我编写了以下使用 awk 的 bash 脚本,目的是将第一个字符设置为小写。该脚本大部分工作正常,但是当我连接两个值时,我添加了一个额外的空格。任何想法如何删除这个错误的空间?

脚本:

#!/bin/bash

foo="MyCamelCaseValue" 
awk '{s=tolower(substr($1,1,1))}{g=substr($1,2,length($1))}{print s,g}' <<<$foo
Run Code Online (Sandbox Code Playgroud)

输出:

我的CamelCaseValue

编辑:

请参阅 Bobdylan 和 RavinderSingh13 对已接受答案的讨论,因为它突出了默认 MacOs bash 版本的问题。

bash --version GNU bash,版本 3.2.57(1)-release (x86_64-apple-darwin19) 版权所有 (C) 2007 Free Software Foundation, Inc.

awk

0
推荐指数
1
解决办法
59
查看次数

如何仅打印前后包含空行的行

我如何只打印line(s)前后包含空白的行。我正在尝试各种 awk 和 grep 组合,但不知何故无法获得它。

tuv0657


tuv2330


tuv2133              Unable to get the ssh connection


tuv1988              Unable to get the ssh connection


tuv1049


tuv1683              Unable to get the ssh connection


tuv2101
Run Code Online (Sandbox Code Playgroud)

期望:

tuv0657
tuv1049
tuv2330
tuv2101
Run Code Online (Sandbox Code Playgroud)

我试过的:

我在下面试过但没有得到结果..

$ awk  '{if ($2=="") print $0}' file
$ grep -E --line-number --with-filename '^$'
Run Code Online (Sandbox Code Playgroud)

awk sed

0
推荐指数
1
解决办法
71
查看次数

slice[0:0] 在 Go 中有什么作用?

我最近在 Golang 降价解析器中看到了以下代码:

    blankLines := make([]lineStat, 0, 128)
    isBlank := false
    for { // process blocks separated by blank lines
        _, lines, ok := reader.SkipBlankLines()
        if !ok {
            return
        }
        lineNum, _ := reader.Position()
        if lines != 0 {
            blankLines = blankLines[0:0]
            l := len(pc.OpenedBlocks())
            for i := 0; i < l; i++ {
                blankLines = append(blankLines, lineStat{lineNum - 1, i, lines != 0})
            }
        }
Run Code Online (Sandbox Code Playgroud)

我对做什么感到困惑blankLines = blankLines[0:0]。这是一种预先添加到数组的方法吗?

go

0
推荐指数
1
解决办法
60
查看次数

awk 命令打印列数据

cat file1.txt | awk -F '{print $1 "|~|" $2 "|~|" $3}' > file2.txt

我正在使用上面的命令从 file1 过滤前三列并放入文件中。

但只获取列名而不是列数据。

怎么做?

|~| - 是分隔符。

file1.txt 的值为:

 a|~|b|~|c|~|d|~|e
 1|~|2|~|3|~|4|~|5
 11|~|22|~|33|~|44|~|55
 111|~|222|~|333|~|444|~|555
Run Code Online (Sandbox Code Playgroud)

我的加急输出是:

 a|~|b|~|c
 1|~|2|~|3
 11|~|22|~|33
 111|~|222|~|333
Run Code Online (Sandbox Code Playgroud)

awk

0
推荐指数
1
解决办法
102
查看次数

标签 统计

awk ×6

bash ×3

go ×1

json ×1

kubectl ×1

kubernetes ×1

linux ×1

sed ×1

shell ×1

unix ×1