私は今日次のことをしようとした日を過ごしました。
Fortranコードファイルがあるとしましょう。
このファイルのすべての内容を小文字に変更したいと思います。ただし、行が特定の文字または単語で始まる場合は、その行を変更しないでください。
たとえば、次のコマンドは
sed -i -e '/^!/! s/\(.*\)/\L\1/' $filein
私が望むように動作し、コメント(「!」で始まる行)を省略し、すべてを小文字に変更します。
sed -i -e '/^#include/! s/\(.*\)/\L\1/' $filein
「#include」という単語で始まる行を省略してください。
Q:これら2つのコマンドを1つにまとめるにはどうすればよいですか?
したがって、デフォルトでは、最初の条件に「または」を追加する必要があります。いくつかのオプションを試しましたが、運がありませんでした。何か簡単なはずだと思います。
答え1
または、次のものを使用できます\|
。
与えられたファイル:
!FOO
BAR
BAZ
# COMMENT
注文する
sed -e '/^!\|^#/!s/\(.*\)/\L\1/' $filein
出力
!FOO
bar
baz
# COMMENT
答え2
太陽
sed -i -e "$exp1" "$file"
sed -i -e "$exp2" "$file"
あなたはできます
sed -i -e "$exp1" -e "$exp2" "$file"