1

そのため、3つおきの数字を抽出し、ターミナルを使用して別のファイルに出力する必要があるtxtファイルがあります。txt ファイルは、タブ区切りの数字の長いリストです。

18 25 0 18 24 5 18 23 5 18 22 8.2 ...

sed または awk を使用してこれを行う方法があることは知っていますが、これまでのところ、次を使用して 3 行ごとに抽出することしかできませんでした。

awk 'NR%3==1' testRain.txt > rainOnly.txt

だからここに答えがあります(というか、私が利用した答えです!):

xargs -n1 < input.txt | awk '!(NR%3)' > output.txt

これによりoutput.txt、元のファイルの 3 番目ごとの番号が別の行として含まれる が得られます。

4

5 に答える 5

1

次の 2 文字をグローバルに何も置換しないことで、3 文字ごとに出力できます。カウントが改行にまたがる場合、Perl を使用するのが最も簡単な解決策かもしれません。

perl -p000 -e 's/(.)../$1/gs'

すべての行の最初、4 番目などの文字が必要な場合は、次のような行指向のツールsedで十分です。

sed 's/\(.\)../\1/g'
于 2013-08-26T17:52:41.577 に答える
0

使用するgrep -P

grep -oP '([^\t]+\t){2}\K[^\t\n]+' file
0
5
5
8.2
于 2013-08-26T17:57:40.173 に答える