Unix 使用sed打印特定行

Unix 使用sed打印特定行,unix,sed,Unix,Sed,我试图只打印不以文件“main”中的字母开头的行 我试过了!w’main 它给我“w”:未找到事件 将完成此操作。根据要求使用sed: sed '/^[[:alpha:]]/d' main 或 或 注意:您可以使用[a-z]代替[:alpha:],但我更喜欢后者,因为它可以安全地跨不同地区使用打印行还有许多其他方法 sed -n '/^[^a-zA-Z]/p' main sed -n '/^[^a-z]/Ip' main awk 'BEGIN{IGNORECASE=1}!/^[a-z]/'

我试图只打印不以文件“main”中的字母开头的行

我试过了!w’main 它给我“w”:未找到事件


将完成此操作。

根据要求使用
sed

sed '/^[[:alpha:]]/d' main


注意:您可以使用
[a-z]
代替
[:alpha:]
,但我更喜欢后者,因为它可以安全地跨不同地区使用

打印行还有许多其他方法

sed -n '/^[^a-zA-Z]/p' main
sed -n '/^[^a-z]/Ip' main 

awk 'BEGIN{IGNORECASE=1}!/^[a-z]/' main

grep -vi "^[a-z]" main

ruby -ne 'print unless /^[a-z]/i' main

读取时-r行
做
大写“$line”
[^a-zA-Z]*)回音$line;;
以撒
完成
如果在文本文件中打印字母,比如说a和z之间的字母,那么打印它们怎么样
sed -n '/^[^[:alpha:]]/p' main
sed -n '/^[[:alpha:]]/!p' main
sed -n '/^[^a-zA-Z]/p' main
sed -n '/^[^a-z]/Ip' main 

awk 'BEGIN{IGNORECASE=1}!/^[a-z]/' main

grep -vi "^[a-z]" main

ruby -ne 'print unless /^[a-z]/i' main
while read -r line
do
  case "$line" in
    [^a-zA-Z]*) echo $line;;
  esac
done < main