sed
내가 필요한 것은 텍스트 파일에서 짝수 줄이나 코드를 삭제하는 것뿐입니다 . awk
특별한 것은 없습니다. 텍스트 파일의 짝수 줄에서 관련 없는 데이터를 제거하면 됩니다.
답변1
간단히:
sed 'n;d' file
짝수 라인의 경우
sed '1!n;d' file
홀수 행의 경우.
GNU 구현을 사용하면 sed
다음 구문을 사용할 수도 있습니다.
이상한:
sed '1~2d' file
심지어:
sed '2~2d' file
답변2
이와 같이 원하지 않는 텍스트 줄을 제거할 수 있습니다.
sed -i '/[REGEX]/d' <FILE>
[REGEX]
는 원치 않는 텍스트 줄과 일치하는 정규식이고 <FILE>
텍스트를 제거할 파일의 이름은 어디에 있습니까? //d
다음과 같이 삭제( ) 명령을 중첩 할 수 있습니다 .
sed '/[REGEX]/d ; /[REGEX]/d ; /[REGEX]/d'
예는 다음과 같습니다.
echo "a" > file ; echo "abcd" >> file
sed -i '/^a$/d' file
cat file # => abcd
사용 중인 버전이 sed
이 옵션을 지원하지 않는 경우 -i
다음 명령을 사용하여 동일한 효과를 얻을 수 있습니다.
cat file | sed '/[REGEX]/d' > file_2 && cat file_2 > file && rm file_2
현명한 사람에게 한 마디
cat file
right back 의 출력을 리디렉션하면 file
원하는 효과가 나타나지 않습니다. 실제로는 file
완전히 잘립니다. 즉, 완전히 잘립니다.삭제 file
.
그래서아니요이 작업을 수행:
cat file | sed '/[REGEX]/d' > file
답변3
이것은앗해결책:
홀수 행 삭제:
awk 'NR%2==0{ print $0 > "infile" }' infile
짝수 행 삭제:
awk 'NR%2{ print $0 > "infile" }' infile
위 명령은 관련 줄을 제거합니다.제자리에따라서 infile
동일한 입력 파일에 출력을 쓸 때는 주의해야 합니다.
다음과 같이 다른 별도의 파일에 쓸 수 있습니다.
EvenLines
이렇게 하면 짝수 줄을 포함하는 파일이 생성됩니다 .
awk 'NR%2==0{ print $0 > "EvenLines" }' infile
이것은 OddLines
홀수 줄을 포함하는 파일을 생성합니다.
awk 'NR%2{ print $0 > "OddLines" }' infile
답변4
sed '0~2d' file
이 명령은 파일에서 짝수 번째 줄을 삭제하는 데 사용됩니다.