Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 如何使用grep单独打印匹配相同图案的行_Awk_Grep - Fatal编程技术网

Awk 如何使用grep单独打印匹配相同图案的行

Awk 如何使用grep单独打印匹配相同图案的行,awk,grep,Awk,Grep,假设我有一个文件,其中有行匹配相同的模式,但在不同的块下如何使用grep/awk将它们写入一个单独的文件中 例如: $ cat file.txt spin 1 voltage current spin 2 voltage current $ 我想在单独的文件“spi1.dat”中写入自旋1电压电流,在单独的文件中写入自旋2电压电流。如何使用grep/awk实现这一点?不知道如何使用awk,但您可以使用split实现类似的功能: split -d -l 2 file.txt spi.dat

假设我有一个文件,其中有行匹配相同的模式,但在不同的块下如何使用grep/awk将它们写入一个单独的文件中 例如:

$ cat file.txt
spin 1 
voltage current
spin 2
voltage current
$

我想在单独的文件“spi1.dat”中写入自旋1电压电流,在单独的文件中写入自旋2电压电流。如何使用grep/awk实现这一点?

不知道如何使用awk,但您可以使用split实现类似的功能:

split -d -l 2 file.txt spi.dat

awk不知道,但您可以使用split做一些类似的事情:

split -d -l 2 file.txt spi.dat

在grep中,一个选项用于在匹配后打印尾随上下文的行

  grep 'spin 1' -A1  file.txt spi1.dat

在grep中,一个选项用于在匹配后打印尾随上下文的行

  grep 'spin 1' -A1  file.txt spi1.dat

不太清楚,但这里有一个
awk
方法:

awk '/^spin/{spin=$0;idx=$NF;getline;print spin" "$0 >"spin"idx".dat"}' infile

不太清楚,但这里有一个
awk
方法:

awk '/^spin/{spin=$0;idx=$NF;getline;print spin" "$0 >"spin"idx".dat"}' infile

是否要查找以“spin”开头的行并将其后面的所有内容打印到一个文件中,或查找以“voltage”开头的行并将其打印到基于最后一行(不是以voltage或其他内容开头)命名的文件中?是否要查找以“spin”开头的行然后将它们后面的所有内容打印到一个文件中,或者查找以“voltage”开头的行,然后将它们打印到一个基于最后一行的文件中,该行不是以voltage开头的,还是其他什么?