반응형
테스트 환경: Ubuntu 14.04, bash shell 사용
Bash 스크립트 파일에서 점점 awk를 써야 될 일이 많아지고, 그 awk 스크립트가 점점 더 복잡해지면서 한 줄에 주욱 이어서 썼더니 점점 가독성이 떨어지고 디버그하기 어렵게 되었다.
결론부터 말하자면, 그냥 가장 바깥에 있는 두 개의 single quote 문자 사이에는 마음대로 띄워써도 된다. ㅡㅡ;
개행 문자(newline), 탭 문자 마음대로 써도 상관이 없다.
그런데 내가 뭘 잘못했는지 command not found 에러가 났다.
뭐가 문제였을까?
확인해 보니,
awk [각종_옵션들]
' <---- awk 명령과 single quote 문자를 개행문자로 분리(...)
{
...
}
'
이런 식으로 썼던 거였다. 그러니까,
awk [각종_옵션들] '
{
...
}
'
코드의 시작을 나타내는 single quote 문자를 awk 명령줄과 같은 위치에 써야 하는데 그걸 엔터 쳐서 분리했더니, bash shell이 두 개의 서로 다른 명령으로 이해했던 것이었다. ㅜㅜ
아니면,
awk [각종_옵션들] \
'
{
...
}
'
이렇게 역슬래시로 다음 줄까지 명령 하나로 인식하도록 처리했어야 했다.
POSIX 명령의 기본 규칙을 잊지 말자. ㅠㅠ
반응형
'IT > Linux' 카테고리의 다른 글
VIM에서 모든 탭(tab)문자를 일정 크기의 공백(space) 문자열로 바꾸기 (0) | 2017.04.24 |
---|---|
우분투(Ubuntu)에 파일 오른쪽 메뉴 Open With에서 wine 관련 항목들 제거하기 (0) | 2017.04.18 |
하나의 파일에 다른 파일에 있는 내용을 열(column) 기준으로 붙이기 (0) | 2017.04.05 |
Ubuntu에서 HP 프린터 인쇄 시 "Filter failed" 상태에서 인쇄가 되지 않는 경우 (0) | 2017.03.02 |
KVM 가상 머신에서 Windows 10 버전 1607 업데이트를 실패하는 경우 (0) | 2017.02.28 |