2012-04-25 30 views
21

Tôi muốn kết xuất truy vấn chọn vào tệp văn bản được phân tách bằng tab bằng cách sử dụng psql -F. Tuy nhiên, thao tác này không hoạt động:Cách đặt dấu phân tách tab bằng cách sử dụng psql -F

psql -Umyuser mydb -F '\t' --no-align -c "select * from mytable" -o /tmp/dumpfile.txt 

Điều đó làm cho dấu phân tách thành chữ. Làm cách nào để tôi sử dụng các tab thực này?

Trả lời

29

Tôi nghĩ bạn chỉ cần sử dụng tab chữ. Cách thức hoạt động này phụ thuộc vào trình bao của bạn. Bạn đã thấy điều này post?

Trong vỏ bash bạn có thể thực hiện việc này với $'\t'.

Sử dụng ví dụ trong câu hỏi của bạn:

psql -Umyuser mydb -AF $'\t' --no-align -c "select * from mytable" -o /tmp/dumpfile.txt 
+3

Cảm ơn! Chủ đề đó đã giúp. Tôi đã nhận nó để làm việc bằng cách sử dụng 'psql -Umyuser mydb -F $ '\ t' --no-align -c" select * từ mytable "-o/tmp/dumpfile.txt' –

+0

nhận xét từ Jammie Forrest là rất hữu ích. fbarber có lẽ có thể thêm nó vào câu trả lời – Dimitris

+0

Tôi cũng phải thêm '-A', để buộc đầu ra không được căn lề. Điều này có thể đã trở thành một yêu cầu trong các phiên bản psql mới hơn. – dland

3

Trong Unix, bạn cũng có thể gõ

ctrl-V tab 

Ctrl-V nói với nhà ga không để giải thích quan trọng tiếp theo.

này cũng làm việc với kí tự xuống dòng (^ M) và nhiều phím đặc biệt khác như phím mũi tên

3

Trong trường hợp nếu ai đó tìm kiếm những cách để làm điều đó trong vỏ tương tác: \f '\t'

Các vấn đề liên quan