我试图建立一个排除列表,以通过外壳变量传递给“ grep -v”,该变量由安装点组成,其中除去了初始的“ /”,并用空格隔开。我正在这样构建它:
EXCLUDE_LIST=$(mount | grep -v '/dev/' | awk '{ print $3 }' | sed 's,^[^/]*/,,' )
这将产生字符串“ dev proc sys tmp var / run”。这是我要用'\ |'替换空格的字符串 因此“ grep -v”可以使用它。
香港专业教育学院试图追加
sed 's/ /\|/g'
到上一个管道,然后
sed 's/ /\\|/g'
和
sed 's/ /\\\|/g'
我想要的是“ dev \ | proc \ | sys \ | tmp \ | var / run”,但是我总是得到“ dev proc sys tmp var / run”。
编辑
mount的输出是
/dev/sda1 on / type ext4 (rw,reltime,nobarrier,commit=10)
devtmpfs on /dev type devtmpfs (rw,nosuid,relatime,sync,size=1024k,nr_inodes=502793,mode=755)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /dev/shm type tmpfs (rw,relatime,sync,size=1024k)
procfs on /proc type procfs (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,relatime,sync,size=524288k)
tmpfs on /var/run type tmpfs (rw,relatime,sync,size=131072k)
“ mount | grep -v'/ dev /'”的输出为:
devtmpfs on /dev type devtmpfs (rw,nosuid,relatime,sync,size=1024k,nr_inodes=502793,mode=755)
procfs on /proc type procfs (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /tmp type tmpfs (rw,relatime,sync,size=524288k)
tmpfs on /var/run type tmpfs (rw,relatime,sync,size=131072k)
“ mount | grep -v'/ dev /'| awk {print $ 3}”的输出为:
/dev
/proc
/sys
/tmp
/var/run
最后,“ mount | grep -v'/ dev /'| awk {print $ 3} | sed's,^ [^ /] * / ,,'”的输出为
dev proc sys tmp var/run
如前所述。
您可以使用一个awk
命令:
mount | awk '!/\/dev\//{sub("/",d,$3);print $3;d="\\|"}' ORS=''
使用给定的输入mount
将打印
dev\|proc\|sys\|tmp\|var/run
说明:
# Applies to all lines with does not match /dev
!/\/dev/{
# Remove leading / with delimiter d
# d will be empty upon first use
sub("/","",$3)
# Print the column
print $3
# Set delimiter after first usage
d="\\|"
}
ORS=''
将使awk的输出记录分隔符静音。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句