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

第 29 章 Utility Programs

目錄

29.1. ed, red - text editor
29.2. vim
29.2.1. 查找與替換
29.2.2. 插入檔案
29.2.3. 批處理
29.2.3.1. vi 批處理
29.2.4. line()
29.2.5. set fileformat
29.3. awk
29.3.1. 處理列
29.3.2. printf
29.3.3. Pattern(字元匹配)
29.3.3.1. Pattern, Pattern
29.3.4. Built-in Variables (NR/NF)
29.3.4.1. NR
29.3.4.2. NF
29.3.4.3. 練習
29.3.4.3.1. 使用 ss 命令統計 TCP 狀態
29.3.4.3.2. TCP/IP Status
29.3.4.3.3. 用戶shell統計
29.3.4.3.4. access.log POST與GET統計
29.3.5. Built-in Functions
29.3.5.1. length
29.3.6. 過濾相同的行
29.4. sed
29.4.1. 查找與替換
29.4.1.1. 正則
29.4.1.2. aaa="bbb" 提取bbb
29.4.1.3. 首字母大寫
29.4.2. insert 插入字元
29.4.3. 追加字元
29.4.4. 修改字元
29.4.5. 刪除字元
29.4.5.1. delete
29.4.6. 行操作
29.4.7. 編輯檔案
29.4.8. 正則表達式
29.4.9. 管道操作
29.4.10. perl
29.5. CURL - transfer a URL
29.5.1. 基本用法
29.5.2. data
29.5.3. connect-timeout
29.5.4. max-time
29.5.5. compressed
29.5.6. vhosts
29.5.7. -w, --write-out <format> 輸出格式定義
29.5.8. -A/--user-agent <agent string>
29.5.9. referer
29.5.10. -v
29.5.11. -o, --output FILE Write output to <file> instead of stdout
29.5.12. -H/--header <line> Custom header to pass to server (H)
29.5.12.1. Last-Modified / If-Modified-Since
29.5.12.2. ETag / If-None-Match
29.5.12.3. Accept-Encoding:gzip,defalte
29.5.12.4. HOST
29.5.12.5. HTTP 認證
29.5.12.6. Accept
29.5.12.7. Content-Type
29.5.13. curl-config
29.5.14. 指定網絡介面或者地址
29.5.15. Cookie 處理
29.5.16. RestFul 應用 JSON 數據處理
29.5.17. FAQ
29.6. expect
29.6.1. 模擬登錄 telnet 獲取Cisco配置
29.6.2. 模擬登錄 ssh
29.6.3. SCP
29.7. expect-lite - quick and easy command line automation tool
29.8. sshpass - noninteractive ssh password provider
29.9. Klish - Kommand Line Interface Shell (the fork of clish project)
29.9.1. 安裝Klish
29.9.2. 為用戶指定clish作為預設Shell
29.9.3. FAQ
29.9.3.1. clish/shell/shell_expat.c:36:19: fatal error: expat.h: No such file or directory
29.10. Limited command Shell (lshell)
29.11. wget - retrieves files from the web
29.11.1. Logging and input file
29.11.1.1. -i, --input-file=FILE download URLs found in local or external FILE.
29.11.2. 下載相關參數
29.11.2.1. -O, --output-document=FILE write documents to FILE 保存到檔案
29.11.3. HTTP options (HTTP 選項)
29.11.3.1. --post-data=STRING use the POST method; send STRING as the data.
29.11.3.2. header HTTP頭定義
29.11.4. Recursive download
29.11.4.1. -r, --recursive specify recursive download.
29.11.4.2. -m, --mirror shortcut for -N -r -l inf --no-remove-listing.
29.11.5. --no-passive-ftp disable the "passive" transfer mode.
29.12. TUI
29.12.1. screen - screen manager with VT100/ANSI terminal emulation
29.12.2. tmux — terminal multiplexer
29.12.3. byobu - wrapper script for seeding a user's byobu configuration and launching a text based window manager (either screen or tmux)
29.12.4. htop - interactive process viewer
29.12.5. elinks
29.12.6. chat
29.13. parallel - build and execute shell command lines from standard input in parallel

29.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.$