2011-12-16 2 views
1

아래 예가 있습니다. cat과 echo를 사용하면 새로운 행 문자가 표시되지 않습니다. 예상되는 동작입니까? solaris unix에서 작업 중입니다.echo 및 cat-supresses 새 행 문자

.262> cat temp2.txt 
    20110801 
    20110802 
    20110803 
    20110804 
    20110805 
    20110808 
    > echo `cat temp2.txt ` 
    20110801 20110802 20110803 20110804 20110805 20110808 
+1

은 무슨 일이하고 싶어 :

그러나 "마크 리드"등의

는 따옴표를 사용하여 공백을 유지할 수 있습니다 제안? 파일의 내용을 원한다면 파일을 cat 할 수 있습니다. 결과를 에코로 전달할 필요가 없습니다. 공백을 보존하려면, 'echo'$ (로 쓰면 좋지만,'echo' :'cat temp2.txt \' "'에 인수를 인용해야합니다. " ' –

답변

0

예 이것은 예상되는 동작입니다.

나는 그것을하지 않는 셸을 모른다.

그것은 떠들썩한 파티에 설명되어 있습니다 :

zsh을에서
$ man bash | awk '/Command Substitution/ { p = 1 } /Arithmetic Expansion/ { p = 0 } { if (p) print; }' 

:

$ man zshall | awk '/COMMAND SUBSTITUTION/ {p=1} /ARITHMETIC EXPANSION/ {p=0} { if (p) print }' 

(편집 : 그들은 무의미로 @sehe에 의해 지적 나는, 명령 라인의 출력을 제거 의견)

+2

문서 조각을 다듬는 경우 +1. 이것은 요점이 아닙니다. 또한, 왜 당신은 요점 (공백이 정규화 된/줄 바꿈 공백) 상태? – sehe

+0

당신은 '남자 배쉬 | perl -ne'print if/명령 대체 /../ 산술 확장/'? – jfs

+1

@ J.F.Sebastian : 나는 그가'남자 배쉬 | awk '/ 명령 대체 /,/산술 확장 /'. 플립 플롭에는 여러 가지 방법이 있습니다. ;) – flesk

1

예 예상되는 동작입니다.

echo "$(cat temp2.txt)"