perl -F, -pale '
$_ = join ",", qw[N/A] x @F
if grep /^$.$/, qw/77 132 140 142 155 156 157 175/;
' input.csv
Или с GNU sed
мы могли бы использовать сочетание переменных оболочки:
# give the rows to be made N/A in a comma separated fashion
rows2na='77,132,140,142,155,156,157,175'
b2sub=$(echo "$rows2na," | sed -e 's/,/ba\n/g')
sed -e "
$b2sub
b
:a;s|[^,]*|N/A|g
" input.csv
Примечание:
Gedit is running
pidof gedit
должен дать вам ответ
contains unsaved text
Насколько я знаю, Gedit не поддерживает какой-либо интерфейс DBus, что делает эту задачу относительно сложной, но возможной:
#! /bin/bash
for i in `pidof gedit`; do
for j in `xdotool search --name --onlyvisible --pid $i`; do
title=`xdotool getwindowname $j`
case $title in
\**)
echo "Found running Gedit with unsaved data"
;;
*)
echo "Gedit is open but there are no unsaved documents"
;;
esac
done
done
Что делает этот сценарий. Он перебирает все найденные процессы gedit, находит их видимые окна, перебирает их заголовки и проверяет, содержит ли заголовок *
в качестве первого символа, указывающего на несохраненный документ.
Сторонники чистоты Bash/shell, вероятно, захотят заменить ``
на $( )
.