标签: awk

Bash:在没有换行的情况下将字符串添加到文件末尾

如何在没有换行符的情况下将字符串添加到文件末尾?

例如,如果我使用>>它将添加到文件的末尾与换行符:

cat list.txt
yourText1
root@host-37:/# echo yourText2 >> list.txt
root@host-37:/# cat list.txt
yourText1
yourText2
Run Code Online (Sandbox Code Playgroud)

我想在yourText1之后添加yourText2

root@host-37:/# cat list.txt
yourText1yourText2
Run Code Online (Sandbox Code Playgroud)

linux bash awk echo cat

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

转换目录中所有文件的dos2unix行结尾

Curretly我使用以下命令来更改dos2unix行结尾,但这是for file-y file ..有一种方法可以对目录中的所有文件运行此命令

sed -i 's/\r//' filename
Run Code Online (Sandbox Code Playgroud)

谢谢,

awk sed

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

以递归方式重命名文件Mac OSX

试图重命名一堆文件.

我可以使用当前目录中的bar重命名foo的任何实例:

ls . | awk '{print("mv "$1" "$1)}' | sed 's/foo/bar/2' | /bin/sh
Run Code Online (Sandbox Code Playgroud)

我可以添加什么来使其递归?

编辑/我的解决方案

我不知道/理解这个shell类型的东西,所以我用一些(非常脏)Ruby做了:

5.times do
  Dir["**/*"].each do |f|
    file_name = File.absolute_path f
    should_rename = file_name.include? "yolo"
    new_file_name = file_name.gsub("yolo", "#{@project_name}")
    File.rename(f, new_file_name) if (should_rename and File.exists? f)
  end
end
Run Code Online (Sandbox Code Playgroud)

shell awk sed sh

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

在awk中对关联数组进行排序

我在awk中有一个关联数组,它被填充如下:

chr_count[$3]++
Run Code Online (Sandbox Code Playgroud)

当我尝试打印我的时候chr_counts,我用这个:

for (i in chr_count) {
    print i,":",chr_count[i];
}
Run Code Online (Sandbox Code Playgroud)

但毫不奇怪,i的顺序没有以任何方式排序.是否有一种简单的方法来迭代排序的键chr_count

arrays sorting awk associative

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

如何从列中减去常数

有没有办法从列的所有值中减去最小值?我需要从第一列中的所有其他数字中减去第一列中的第一个数字.

我写了这个脚本,但它没有给出正确的结果:

$ awk '{$1 = $1 - 1280449530}' file 
1280449530 452
1280449531 2434
1280449531 2681
1280449531 2946
1280449531 1626
1280449532 3217
1280449532 4764
1280449532 4501
1280449532 3372
1280449533 4129
1280449533 6937
1280449533 6423
1280449533 4818
1280449534 4850
1280449534 8980
1280449534 8078
1280449534 6788
1280449535 5587
1280449535 10879
1280449535 9920
1280449535 8146
1280449536 6324
1280449536 12860
1280449536 11612
Run Code Online (Sandbox Code Playgroud)

awk subtraction

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

awk模式可以匹配多行吗?

我有一些复杂的日志文件,我需要编写一些工具来处理它们.我一直在玩awk,但我不确定awk是否适合这个.

我的日志文件是OSPF协议解码的打印输出,其中包含各种协议pkts的文本日志及其内容,以及用其值标识的各种协议字段.我想处理这些文件并只打印出与特定pkts相关的日志的某些行.每个pkt日志可以包含该pkt条目的不同行数.

awk似乎能够处理与模式匹配的单行.我可以找到所需的pkt然后我需要匹配后面的行中的模式,以确定它是否是我想要打印的pkt.

另一种看待这种情况的方法是,我希望在日志文件中隔离几行,并根据几行上的模式匹配打印出那些特定pkt细节的行.

由于awk似乎是基于行的,我不确定这是否是最好的工具.

如果awk可以做到这一点,怎么做?如果没有,有关于使用哪种工具的建议?

linux awk

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

如何在单个ssh-command中使用bash $(awk)?

我试图执行一个ssh包含`sub-code`或$(子代码)的命令(我一直使用它但我不知道它的正式名称)要先执行,但是目标服务器.

为了论证,让我们说这是我想要使用的命令.当然这可以用hostname,但这只是一个简化的例子,包含我想要使用的所有格式化魔法.

echo `uname -a | awk '{print $2}'`
Run Code Online (Sandbox Code Playgroud)

没问题.但是你如何正确地逃避这一点以便ssh在一个命令中发送它?以下是错误的,因为它让服务器回复您的本地主机名.子代码在本地执行:

ssh myServer echo `uname -a | awk '{print $2}'`
Run Code Online (Sandbox Code Playgroud)

但任何浮出水面的想法都不起作用:

$ ssh myServer echo \`uname -a | awk '{print $2}'\`
awk: cmd. line:1: {print $2}`
awk: cmd. line:1:           ^ invalid char '`' in expression
$ ssh myServer echo \$(uname -a | awk '{print $2}')
bash: syntax error near unexpected token `('
$ ssh myServer echo \$\(uname -a | awk '{print $2}')
bash: syntax error …
Run Code Online (Sandbox Code Playgroud)

ssh bash awk

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

在Bash中解析配置文件中的变量

在文件中包含以下内容:

VARIABLE1="Value1"
VARIABLE2="Value2"
VARIABLE3="Value3"
Run Code Online (Sandbox Code Playgroud)

我需要一个输出以下内容的脚本:

Content of VARIABLE1 is Value1
Content of VARIABLE2 is Value2
Content of VARIABLE3 is Value3
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

variables bash awk parsing

20
推荐指数
4
解决办法
6万
查看次数

根据单列(AWK)中的值拆分大文件

我想根据第6列中的值(大约10*10 ^ 3个唯一值)拆分一个大文件(10 ^ 6行).但是,由于记录的数量,我无法使其正常工作.它应该很容易,但它已经花了好几个小时,我没有进一步.

我尝试了两种选择:
选项1

awk '{print > $6".txt"}' input.file
awk: cannot open "Parent=mRNA:Solyc06g051570.2.1.txt" for output (Too many open files)
Run Code Online (Sandbox Code Playgroud)

选项2

awk '{print > $6; close($6)}' input.file 
Run Code Online (Sandbox Code Playgroud)

这不会导致错误,但它创建的文件只包含对应于'grouping'值$ 6的最后一行

这是我的文件的开头,但是,这个文件不会导致错误,因为它太小了:

exon    3688    4407    +   ID=exon:Solyc06g005000.2.1.1    Parent=mRNA:Solyc06g005000.2.1
exon    4853    5604    +   ID=exon:Solyc06g005000.2.1.2    Parent=mRNA:Solyc06g005000.2.1
exon    7663    7998    +   ID=exon:Solyc06g005000.2.1.3    Parent=mRNA:Solyc06g005000.2.1
exon    9148    9408    +   ID=exon:Solyc06g005010.1.1.1    Parent=mRNA:Solyc06g005010.1.1
exon    13310   13330   +   ID=exon:Solyc06g005020.1.1.1    Parent=mRNA:Solyc06g005020.1.1
exon    13449   13532   +   ID=exon:Solyc06g005020.1.1.2    Parent=mRNA:Solyc06g005020.1.1
exon    13711   13783   +   ID=exon:Solyc06g005020.1.1.3    Parent=mRNA:Solyc06g005020.1.1
exon    14172   14236   +   ID=exon:Solyc06g005020.1.1.4    Parent=mRNA:Solyc06g005020.1.1 …
Run Code Online (Sandbox Code Playgroud)

awk genetic split large-data

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

按行号和列号子集文件

我们希望在行和列上对文本文件进行子集化,其中从文件中读取行和列编号.排除标题(第1行)和rownames(第1列).

inputFile.txt制表符分隔的文本文件

header  62  9   3   54  6   1
25  1   2   3   4   5   6
96  1   1   1   1   0   1
72  3   3   3   3   3   3
18  0   1   0   1   1   0
82  1   0   0   0   0   1
77  1   0   1   0   1   1
15  7   7   7   7   7   7
82  0   0   1   1   1   0
37  0   1   0   0   1   0
18  0   1   0   0   1   0 …
Run Code Online (Sandbox Code Playgroud)

bash awk cut bioinformatics subset

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

标签 统计

awk ×10

bash ×4

linux ×2

sed ×2

arrays ×1

associative ×1

bioinformatics ×1

cat ×1

cut ×1

echo ×1

genetic ×1

large-data ×1

parsing ×1

sh ×1

shell ×1

sorting ×1

split ×1

ssh ×1

subset ×1

subtraction ×1

variables ×1