Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

第 26 章 Utility Programs

目錄

26.1. ed, red - text editor
26.2. vim
26.2.1. 查找與替換
26.2.2. 插入檔案
26.2.3. 批處理
26.2.3.1. vi 批處理
26.2.4. line()
26.3. awk
26.3.1. 處理列
26.3.2. printf
26.3.3. Pattern(字元匹配)
26.3.3.1. Pattern, Pattern
26.3.4. Built-in Variables (NR/NF)
26.3.4.1. NR
26.3.4.2. NF
26.3.4.3. 練習
26.3.5. Built-in Functions
26.3.5.1. length
26.3.6. 過濾相同的行
26.4. sed
26.4.1. 查找與替換
26.4.1.1. 正則
26.4.1.2. delete
26.4.1.3. aaa="bbb" 提取bbb
26.4.1.4. 首字母大寫
26.4.2. 編輯檔案
26.4.3. 內容打印
26.4.4. 編輯操作
26.4.4.1. insert
26.4.5. 管道操作
26.5. CURL - transfer a URL
26.5.1. 基本用法
26.5.2. data
26.5.3. connect-timeout
26.5.4. max-time
26.5.5. compressed
26.5.6. vhosts
26.5.7. 輸出格式定義
26.5.8. -A/--user-agent <agent string>
26.5.9. referer
26.5.10. -v
26.5.11. -o, --output FILE Write output to <file> instead of stdout
26.5.12. -H/--header <line> Custom header to pass to server (H)
26.5.12.1. Last-Modified / If-Modified-Since
26.5.12.2. ETag / If-None-Match
26.5.12.3. Accept-Encoding:gzip,defalte
26.5.12.4. HOST
26.5.12.5. HTTP 認證
26.5.13. curl-config
26.5.14. FAQ
26.6. expect
26.6.1. 模擬登錄 telnet 獲取Cisco配置
26.6.2. 模擬登錄 ssh
26.6.3. SCP
26.7. expect-lite - quick and easy command line automation tool
26.8. sshpass - noninteractive ssh password provider
26.9. Klish - Kommand Line Interface Shell (the fork of clish project)
26.9.1. 安裝Klish
26.9.2. 為用戶指定clish作為預設Shell
26.9.3. FAQ
26.9.3.1. clish/shell/shell_expat.c:36:19: fatal error: expat.h: No such file or directory
26.10. Limited command Shell (lshell)
26.11. wget - retrieves files from the web
26.11.1. Logging and input file
26.11.1.1. -i, --input-file=FILE download URLs found in local or external FILE.
26.11.2. HTTP options
26.11.2.1. --post-data=STRING use the POST method; send STRING as the data.
26.11.3. Recursive download
26.11.3.1. -r, --recursive specify recursive download.
26.11.3.2. -m, --mirror shortcut for -N -r -l inf --no-remove-listing.
26.11.4. --no-passive-ftp disable the "passive" transfer mode.
26.12. TUI
26.12.1. screen - screen manager with VT100/ANSI terminal emulation
26.12.2. tmux — terminal multiplexer
26.12.3. byobu - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)
26.12.4. htop - interactive process viewer
26.12.5. elinks
26.12.6. chat
26.13. parallel - build and execute shell command lines from standard input in parallel

26.1. ed, red - text editor

行定址

.	此選項對當前行定址(預設地址)。
number	此選項對第 number 行定址。可以按逗號分隔的範圍 (first,last) 對行定址。0 代表緩衝區的開頭(第一行之前)。
-number	此選項對當前行之前的第 number 行定址。如果沒有 number,則減號對緊跟在當前行之前的行定址。
+number	此選項對當前行之後的第 number 行定址。如果沒有 number,則加號對緊跟在當前行之後的行定址。
$	此選項對最後一行定址。
,	此選項對第一至最後一行定址,包括第一行和最後一行(與 1,$ 相同)。
;	此選項對當前行至最後一行定址。
/pattern/	此選項對下一個包含與 pattern 匹配的文本的行定址。
?pattern?	此選項對上一個包含與 pattern 匹配的文本的行定址。	
	

命令描述

a	此命令在指定的地址之後追加文本。
c	此命令將指定的地址更改為給定的文本。
d	此命令刪除指定地址處的行。
i	此命令在指定的地址之前插入文本。
q	此命令在將緩衝區保存到磁碟後終止程序並退出。
r file	此命令讀取 filespec 的內容並將其插入指定的地址之後。
s/pattern/replacement/	此命令將匹配 pattern 的文本替換為指定地址中的 replacement 文本。
w file	此命令將指定的地址寫到 file。如果沒有 address,則此命令預設使用整個緩衝區。
	

實例,刪除passwd中的neo用戶

	
ed -s passwd <<EOF
/neo/
d
wq
EOF
	
	
	
ed -s mfsmetalogger.cfg <<EOF
,s/^# //
wq
EOF		
	
	

刪除尾隨空格

	
$ cat -vet input.txt

This line has trailing blanks.    $
This line does not.$

$ (echo ',s/ *$//'; echo 'wq') | ed -s input.txt

$ cat -vet input.txt

This line has trailing blanks.$
This line does not.$