![sed 명령에 대한 도움이 필요합니다](https://linux55.com/image/183053/sed%20%EB%AA%85%EB%A0%B9%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%8F%84%EC%9B%80%EC%9D%B4%20%ED%95%84%EC%9A%94%ED%95%A9%EB%8B%88%EB%8B%A4.png)
sed
2000년부터 2009년(포함) 사이에 출시된 다음 게임을 검색하려면 단일 명령을 입력하는 데 도움이 필요합니다 . (/) 검색을 시도했지만 작동하지 않습니다.
1 Wii Sports Wii 2006 Nintendo 41.36
2 Super Mario Bros. NES 1985 Nintendo 29.08
3 Duck Hunt NES 1985 Nintendo 26.93
4 Tetris GB 1989 Nintendo 23.20
5 Mario Kart Wii Wii 2008 Nintendo 15.91
6 Wii Sports Resort Wii 2009 Nintendo 15.61
7 Kinect Adventures! X360 2010 MS Game Studios 15.09
8 New Super Mario Bros. Wii Wii 2009 Nintendo 14.53
9 Wii Play Wii 2007 Nintendo 13.96
10 Super Mario World SNES 1991 Nintendo 12.78
11 New Super Mario Bros. DS 2006 Nintendo 11.28
12 Pokémon Red/Green/Blue GB 1998 Nintendo 11.27
13 Super Mario Land GB 1989 Nintendo 10.83
14 Call of Duty: Black Ops X360 2010 Activision 9.76
15 Mario Kart DS DS 2005 Nintendo 9.71
16 Super Mario Bros. 3 NES 1990 Nintendo 9.54
17 Grand Theft Auto:San Andreas PS2 2004 Rockstar Games 9.43
18 Call of Duty: Modern Warfare X360 2011 Activision 9.07
19 Grand Theft Auto V X360 2013 Rockstar Games 9.06
답변1
사용하는 것이 더 좋습니다앗이 사용 사례를 텍스트 처리 도구로 사용하는 동안 위의 방법을 사용하여 원하는 항목을 검색할 수 있습니다(이 방법은 목록에서만 작동합니다).
sed -n '/200[0-9]/p' file
-n : 전체 파일 출력을 억제합니다.
p 명령: 일치하는 패턴을 인쇄하는 데 사용됩니다.
그리고AWK(열이 탭으로 구분되어 있다고 가정):
awk -F '\t' '{if($4 >= 2000 && $4 <= 2009 ) {print $0}}' file
답변2
고정 너비 필드이고 모든 문자의 너비가 1이고 너비가 1인 경우(너비 0 또는 이중 너비 문자 및 TAB와 같은 제어 문자 없음) 다음을 수행할 수 있습니다.
<your-file grep -E '^.{38}200[0-9] '
연도 필드가 39열에서 시작한다고 가정합니다.
즉, 문자( ) ^
로 시작 하고 그 뒤에 200, 0~9 범위의 문자 및 공백이 오는 줄을 찾습니다.38
.
답변3
sed 대신 grep을 사용하는 것이 좋습니다.
터미널에서 실행: cat YOURFILE |
YOURFILE을 파일 이름으로 바꾸세요. YEAR를 해당 연도에 출시된 모든 게임을 확인하려는 연도로 바꾸세요.
도움이 되었기를 바랍니다!