bash 스크립트에서 파일의 첫 줄을 얻는 방법은 무엇입니까?
bash 변수에 파일의 첫 줄을 넣어야합니다. grep 명령을 사용하는 것 같지만 줄 수를 제한하는 방법이 있습니까?
head
파일에서 첫 번째 줄을 가져오고 -n
매개 변수를 사용하여 추출 할 줄 수를 지정할 수 있습니다.
line=$(head -n 1 filename)
bash를 사용하여 첫 번째 줄을 읽으려면 read
statement를 사용하십시오 . 예 :
read -r firstline<file
firstline
변수가 될 것입니다 (다른 것에 할당 할 필요가 없습니다)
이것으로 filename
변수 의 첫 줄을 충분하게 저장합니다 $line
.
read -r line < filename
나는 또한 awk
이것을 좋아 한다.
awk 'NR==1 {print; exit}' file
줄 자체를 저장하려면 var=$(command)
구문을 사용하십시오 . 이 경우, line=$(awk 'NR==1 {print; exit}' file)
.
또는 심지어 sed
:
sed -n '1p' file
동등 line=$(sed -n '1p' file)
합니다.
read
with를 공급할 때의 샘플 seq 10
, 즉 1에서 10까지의 숫자 시퀀스를 참조하십시오 .
$ read -r line < <(seq 10)
$ echo "$line"
1
$ line=$(awk 'NR==1 {print; exit}' <(seq 10))
$ echo "$line"
1
line=$(head -1 file)
잘 작동합니다. (이전 답변). 그러나
line=$(read -r FIRSTLINE < filename)
read
내장 bash 명령 처럼 약간 빠릅니다 .
echo
소스 파일의 첫 번째 목록 만 대상 파일에 추가하십시오.
echo $(head -n 1 source.txt) > target.txt
질문은 어느 것이 가장 빠른지 묻지 않았지만 sed 답변에 추가하기 위해 패턴 공간이 여전히 큰 파일에서 스캔되므로 -n '1p'가 제대로 수행되지 않습니다. 호기심으로 나는 'head'가 sed를 좁게 이겼 음을 발견했습니다.
# best:
head -n1 $bigfile >/dev/null
# a bit slower than head (I saw about 10% difference):
sed '1q' $bigfile >/dev/null
# VERY slow:
sed -n '1p' $bigfile >/dev/null
참고 URL : https://stackoverflow.com/questions/2439579/how-to-get-the-first-line-of-a-file-in-a-bash-script
'Programing' 카테고리의 다른 글
Git Shelve vs Stash (0) | 2020.04.28 |
---|---|
Visual Studio에서 게터 및 세터를 생성하는 방법은 무엇입니까? (0) | 2020.04.28 |
“while (true)”루프가 그렇게 나쁩니 까? (0) | 2020.04.28 |
다른 클래스의 메소드에 대한 Javadoc 링크 (0) | 2020.04.28 |
Mockito 매처 및 기본 배열 (0) | 2020.04.28 |