쉘 스크립트의 변수로 출력하는 텍스트 파일이 있습니다. 하지만 처음 50자만 필요합니다.
?를 사용해 보았지만 cat ${filename} cut -c1-50
처음 50자보다 훨씬 더 많은 문자가 표시됩니다. 이는 줄을 찾기 때문일 수 있으며 cut
(100% 확실하지는 않음) 텍스트 파일은 긴 문자열일 수 있습니다. 이는 실제로 상황에 따라 다릅니다.
cat
파이프를 통해 명령의 첫 번째 X 문자를 가져올 수 있는 유틸리티가 있습니까 ?
답변1
head -c 50 file
그러면 처음 50바이트가 반환됩니다.
이 명령은 모든 운영 체제에서 항상 동일한 방식으로 구현되지는 않습니다. Linux 및 macOS에서 작동하는 방식은 다음과 같습니다. Solaris(11)에서는 /usr/gnu/bin/에서 gnu 버전을 사용해야 합니다.
답변2
cut
데이터를 파이프하면 명령이 작동합니다.
cat ${file} | cut -c1-50
또는 쓸데없는 cat 사용을 피하고 더 안전하게 만드세요.
cut -c1-50 < "$file"
위 명령은 처음 50자(또는 cut
구현에 따라 바이트) 를 인쇄합니다.각 입력 라인마다. 말씀하신 대로 파일이 하나의 큰 줄이면 예상대로 작동해야 합니다.
답변3
dd status=none bs=1 count=50 if=${filename}
그러면 처음 50바이트가 반환됩니다.
답변4
grep -om1 "^.\{50\}" ${filename}
기타 변형(파일의 첫 번째 줄)
(IFS= read -r line <${filename}; echo ${line:0:50})