첫 번째 행에서만 작업을 수행하려면 어떻게 해야 합니까?

첫 번째 행에서만 작업을 수행하려면 어떻게 해야 합니까?
sed 's/.\(.*\)/\1/' myfile

내 파일에 다음이 포함되어 있다고 가정해 보겠습니다.

abc
def
ghi

첫 번째 줄의 첫 번째 문자만 제거하고 싶지만 위의 내용은 모든 줄에서 해당 문자를 제거합니다.

답변1

아마도 sed '1s/.\(.*\)/\1/' myfile?

답변2

awk를 사용할 수도 있습니다.awk 'NR==1 {sub(/./,"")} 1'

답변3

tail에서 읽을 수 있습니다바이트오프셋이므로 파일이단일 바이트 문자(보통 UTF-8 ASCII) 괜찮을 것입니다.

당신에게 중요한지 여부는 상황에 따라 다르지만 tail그보다 빠릅니다. 아마도 왜냐하면sedsed각 라인은 개별적으로 처리되어야 하지만...첫 번째 라인이 발생할 가능성이 있는 곳에서는 사용하지 마세요.특징여러 바이트를 사용하십시오.

tail -c +2 "file"  

~에서man tail

-c, --bytes=N 마지막 N 바이트를 출력하거나 +N을 사용하여 각 파일에서 시작하는 N번째 바이트를 출력합니다.

관련 정보