如何对文件中的特定行使用sed

时间:2016-12-04 19:41:52

标签: linux grep

文件中有两个单词music

Hello music
Goodbye music

如果我使用sed仅在music应用grep Hello的情况下替换sed的实例,我需要将哪些内容添加到sed -i -e "s/$olmusic/$newmusic/g" file.txt命令中?

目前grep替换了文件中$ oldmusic的每个实例,但我需要它只替换符合df.index.set_levels(df.index.levels[0] + 1, 0, inplace=True) 条件的那个。

1 个答案:

答案 0 :(得分:0)

#!/usr/bin/perl -w use strict; my $v_merge_gtf = shift @ARGV or die $!; my $unique_gtf = shift @ARGV or die $!; my %fpkm_hash; my %xloc_hash; open (FILE, "$v_merge_gtf") or die $!; while (<FILE>) { my $line = $_; chomp $line; if ($line =~ /[a-z]/) { my @array = split("\t", $line); if ($array[2] eq 'exon') { my $id = $array[8]; if ($id =~ /transcript_id \"(CUFF\S+)/) { $id = $1; $id =~ s/\"//g; $id =~ s/;//; } my $fpkm = $array[8]; if ($fpkm =~ /FPKM \"(\S+)/) { $fpkm = $1; $fpkm =~ s/\"//g; $fpkm =~ s/;//; } my $xloc = $array[17]; if ($xloc =~ /gene_id \"(XLOC\S+)/) { $xloc = $1; $xloc =~ s/\"//g; $xloc =~ s/;//; } $fpkm_hash{$id} = $fpkm; $xloc_hash{$id} = $xloc; } } } close FILE; open (FILE, "$unique_gtf") or die $!; while (<FILE>) { my $line = $_; chomp $line; if ($line =~ /[a-z]/) { my @array = split("\t", $line); my $id = $array[0]; my $uniq = $array[1]; print $id . "\t" . $uniq . "\t" . $xloc_hash{$id} . "\t" . $fpkm_hash{$id} . "\n"; } } close FILE; 提议将正则表达式用作address

sed