파일의 마지막 줄에서 두 번째 줄만 읽는 방법

파일의 마지막 줄에서 두 번째 줄만 읽는 방법

myfile.csv임의로 업데이트/작성하는 클라이언트가 있습니다.

다음 코드를 작성했는데 MySQL 코드 조각은 생략했습니다.

while true
do
  awk_variables_value_array=`tail -n2 myfile.csv | awk -F, '$7 == "status" {print $4, $5, $10 }'`
  var1=${awk_variables_value_array[0]}
  var2=${awk_variables_value_array[1]}
  var3=${awk_variables_value_array[2]}

  if[ "var3" -gt "0" ]
  --MYSQL SNIPPET IS--
  fi
done

묻다: tail -n2읽다마지막2줄인데 어떻게 바꾸나요?두 번째 라인

문서:

어디N파일의 마지막 줄입니다

line 1
line 2
line 3
line 4
....
line n-2
line n-1
line n

전류 출력 출력:

line n-1
line n 

나는 출력을 다음과 같이 원한다:

line n-1

답변1

어때요 tail -n2 myfile.csv | head -n1 | awk ....?

답변2

sed 'x;$!d' <infile

그것은 당신에게 효과가 있을 것입니다.

설명:
각 줄마다sede는 x버퍼를 변경합니다(저장 공간과 패턴 공간의 내용 교환). 마지막 줄에 없으면 d현재 패턴 공간을 삭제합니다(그래서 아무것도 인쇄되지 않습니다). 마지막 줄 sed(이전 두 번째 줄 포함) 에만 패턴 공간을 자동으로 인쇄합니다.

관련 정보