각 행의 첫 번째 열에 정규식만 있는 경우 csv 파일에서 행 삭제

각 행의 첫 번째 열에 정규식만 있는 경우 csv 파일에서 행 삭제

다음과 같은 쉼표로 구분된 데이터가 있습니다(시각적 명확성을 위해 공백 사용).

 1 2014 23 2352 19.24 7.18
 1 2014 23 2353 19.78 4.65
24 2014 23 2354 20.26 25.34
 1 2014 23 2355 26.65 42.76
 1 2014 23 2356 27.34 56.356
 1 2014 23 2357 29.24 45.4
24 2014 23 2358 30.23 345.27
 1 2014 23 2359 23.23 345.21
 1 2014 24 0000 12.53 1.98
 1 2014 24 0001 7.24  12.3
24 2014 24 0002 15.68 90.8

24로 시작하는 모든 줄을 삭제하고 싶습니다(또는 어느 쪽이든 1로 시작하는 모든 줄을 유지하고 싶습니다).

따라서 원하는 출력은 다음과 같습니다.

 1 2014 23 2352 19.24 7.18
 1 2014 23 2353 19.78 4.65
 1 2014 23 2355 26.65 42.76
 1 2014 23 2356 27.34 56.356
 1 2014 23 2357 29.24 45.4
 1 2014 23 2359 23.23 345.21
 1 2014 24 0000 12.53 1.98
 1 2014 24 0001 7.24  12.3

나는 열심히 노력했다

sed '/24/d' (filename)

그러나 이렇게 하면 다음과 같이 전체 파일에서 24의 모든 인스턴스가 제거됩니다(필요하지 않음!).

1 2014 23 2353 19.78 4.65
1 2014 23 2355 26.65 42.76
1 2014 23 2356 27.34 56.356
1 2014 23 2359 23.23 345.21

답변1

( 줄 시작 부분의 모든 내용을 인쇄합니다) awk:1

awk '/^1/{print $0}'

sed( -n모든 내용을 인쇄하지 않으려면 옵션을 사용하세요 ):

sed -n '/^1/p'

사용하십시오 grep(텍스트 처리에 가장 적합한 선택은 아니지만 이 경우에는 충분합니다).

grep '^1'

답변2

grep -v ^2424로 시작하지 않는 줄만 유지하세요.

관련 정보