Files
是否可以編寫一個腳本,將“#”附加到以大寫字母開頭的文件的任何行?
為了使學校項目更容易,我想在每行附加一個分隔符,以帶有 bash 腳本的大寫字母開頭。誰能幫幫我?我已經嘗試與 case 命令一起逐行讀取文件,但它不起作用我真的不明白我在做什麼。這就是我到目前為止所擁有的:(我是腳本新手,別惹我)
#!/bin/bash input=/home/user/file while IFS= read -r var do case [A-Z] sed 's/^/#/' file done
您不使用 shell 循環來處理 text。處理文本由文本處理工具完成,這些工具一次處理一行輸入:
#! /bin/sh - input=/home/user/file sed 's/^[[:upper:]]/#&/' < "$input"
將
#
在.^
_$input
在這裡,大寫字母由語言環境決定。它將包括 ABCDEFGHIJKLMNOPQRSTUVWXYZ 英文字母,可能還包括 Á、Ź 或 Π(如果存在)。
如果您只想限制為 ABCDEFGHIJKLMNOPQRSTUVWXYZ,您可以這樣寫:
sed 's/^[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/#&/' < "$input"
[A-Z]
根據語言環境,它本身可能會匹配任何東西。您還會找到匹配abcdefghijklmnopqrstuvwxy
(notz
) 的系統。在大多數係統上,它會匹配 Á,但不會匹配 Ź(如果存在於語言環境的charmap 中)。它甚至可以匹配字元序列(多字元整理元素,如 HungarianDdzs
)。