我想找一種方法來刪除每個第3和第5行,但不是第15個使用sed,但這是事情:你不能使用〜路(GNU)。它必須像刪除每個第3和第5行,但不是在sed第15行
sed 'n;n;d' test
,但我無法弄清楚如何將3 ...
例輸入相結合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
輸出示例:
1
2
4
7
8
11
13
14
15
它需要在sed中,不需要awk或perl
我想找一種方法來刪除每個第3和第5行,但不是第15個使用sed,但這是事情:你不能使用〜路(GNU)。它必須像刪除每個第3和第5行,但不是在sed第15行
sed 'n;n;d' test
,但我無法弄清楚如何將3 ...
例輸入相結合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
輸出示例:
1
2
4
7
8
11
13
14
15
它需要在sed中,不需要awk或perl
啊:
$ seq 15 | sed -n 'p;n;p;n;n;p;n;n;n;p;n;p;n;n;n;p;n;n;p;n;p;n;p'
1
2
4
7
8
11
13
14
15
awk命令是更容易理解這一要求:
awk 'NR==15 || (NR%3 && NR%5)' file
1
2
4
7
8
11
13
14
15
這可能會爲你工作(GNU SED):
sed '0~15b;0~3d;0~5d' file
使用GNU sed可以:
sed '15p;0~3d;0~5d' test
這裏是test re從上面awk/sed命令:
seq 99 |awk 'NR==15 || (NR%3 && NR%5)' > anubhava.txt
seq 99 |sed -n 'p;n;p;n;n;p;n;n;n;p;n;p;n;n;n;p;n;n;p;n;p;n;p' > glenn.jackman.txt
seq 99 |sed '0~15b;0~3d;0~5d' > potong.txt
seq 99 |sed '15p;0~3d;0~5d' > bmw.txt
$diff anubhava.txt glenn.jackman.txt
17a18
> 30
25a27
> 45
33a36
> 60
41a45
> 75
49a54
> 90
$ diff -q anubhava.txt potong.txt
Files anubhava.txt and potong.txt differ # same problem that can't delete line 30, 45, 60, etc.
$ diff -q anubhava.txt bmw.txt
$
'sed'絕對不是最好的工具。 –
http://rosettacode.org/wiki/FizzBuzz –