bash 스크립트가 있습니다. 이 명령을 실행하면:
- 특정 패턴에 대한 grep,
- 변환 출력,
- 출력 정렬
- 출력 중복 제거
그런 다음 터미널에서 줄당 grep 찾기를 얻습니다.
LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq
그러나 출력 변수에 넣으면 형식이 손실됩니다(파일에 에코되거나 화면에 에코되는 경우).
#!/usr/bin/env bash
output=$(LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq)
echo $output > $fn
명령 출력을 변수에 저장한 후 명령 출력 형식을 어떻게 보존할 수 있습니까?
답변1
따옴표 사용:
echo "$output" > $fn
에코 라인은 (변수 확장 후) 쉘에 의해 구문 분석되며 인수 사이의 모든 공백 문자는 단순 공백으로 축소됩니다. 예를 들어:
$ var1="toto
> titi
> tutu
> "
$ echo $var1
toto titi tutu
$ echo "$var1"
toto
titi
tutu