1

まったく同じ形式の 2 つの別個のテキスト ファイルがあります。FILE1.txt特定の検索用語をgrepして、すべての一致の行番号を出力できます。行番号は番号順にファイルまたは変数に出力されます。

各行番号を使用して、その行を番号FILE2.txt順に印刷したいOUTPUT.txt. 誰かがこれを使用して、awkまたはsedこれを行う方法を知っていますか?

値が 25 26 27 28 の文字列変数 $linenumbers があります。

次のコマンドを使用します。

$linenumbers の i の場合。do sed -n "/$I/p" $i test_read2.fastq >> test.fastq; 終わり。

エラーが発生します

sed: 読み取れません 25: そのようなファイルまたはディレクトリはありません

sed: 読み取れません 26: そのようなファイルまたはディレクトリはありません

sed: 読み取れません 27: そのようなファイルまたはディレクトリはありません

sed: 読み取れません 28: そのようなファイルまたはディレクトリはありません

この sed コマンドを 1 つずつ実行すると、ファイルから行番号 25、26、27、および 28 を取得し、次のコマンドを使用してファイルに出力できます。

sed -n "25p" test_read2.fastq >> test.fastq

「25p」を変数に置き換えたいので、これを1つずつ行わずにファイルから複数の行(25,26,27,28)を引き出します...

4

3 に答える 3

1

正確に何をしたいのかわかりません。fileで定義されている行を印刷したい場合は、次のlinesことができますawk 'NR==FNR{a[$0];next}FNR in a' lines file

テスト:

$ cat lines
1
3
7
$ cat file
a
b
c
d
e
f
g

$ awk 'NR==FNR{a[$0];next}FNR in a' lines file
a
c
g
于 2014-03-12T12:08:45.060 に答える
1
sed -n "` grep -n 'Yourpattern' File1.txt | sed 's/:.*/p/'`" File2.txt

置換と(二重)引用符に注意してくださいYourPattern

于 2014-03-12T12:52:31.737 に答える