タグ付けされた質問 「sed」

Sedは、標準入力またはユーザー指定のファイルに対してさまざまなフィルタリングや変換機能を実行できるという点で、ストリームエディターとして知られています。通常、テキストファイル内の検索と置換に使用されます。あなたの質問がテキスト処理についてであるならば、このタグはおそらく適切です

7
Bashスクリプト-次の文字列を連結する方法は?
Linux(Ubuntu / Fedora)で検出を実行するbashスクリプトの一部を次に示しますcpuid。 /usr/bin/cpuid > id.txt CPUID=id.txt echo `grep "extended model" $CPUID` | sed 's/0x//' | awk ' { print $4 } ' > cpu.txt a=`cat cpu.txt` echo `grep "extended family" $CPUID`| sed 's/0x//' | awk ' { print $4 } ' > cpu.txt a+=`cat cpu.txt` つまり、私のラップトップの場合、スクリプトのこの部分(ここに表示)は60になります。 中間ファイル(cpu.txt)を使用せずに、ローカル変数のみを使用してこれを行うにはどうすればよいですか?


2
すべてのスペースの前にバックスラッシュを追加するにはどうすればよいですか?
できればtrまたはsedコマンドを使用して、すべてのスペースの前にバックスラッシュを付けるにはどうすればよいですか? これが私のスクリプトです: #!/bin/bash line="hello bye" echo $line | tr ' ' "\\\ " これは、スペースをバックスラッシュとそれに続くスペースで置き換えることを想定していますが、スペースをバックスラッシュで置き換えるだけであり、バックラッシ+スペースではありません。 これは私が得る出力です: hello\bye 期待される出力: hello\ bye

1
新しいアイテムをcom.canonical.Unity.Panel systray-whitelistに追加するための1行のコマンド
これは、Unity通知パネルにアイテムを追加する方法ではなく、コマンドラインの指示の質問を使用する方法の詳細です。 新しいアイテムをcom.canonical.Unity.Panel systray-whitelistに追加するには、1行のCLIが必要です。 そのための標準的な手順は次のとおりです。 sudo gsettings get com.canonical.Unity.Panel systray-whitelist 我々が得る ['JavaEmbeddedFrame', 'Wine', 'Skype'] 次に、2番目のコマンドを実行します sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']" それはすばらしいことですが、最初の行から結果をコピーして貼り付ける必要があります。私が書いているスクリプトの場合は、1つのコマンドで実行したいと考えています。 これまでのところ、これは私が持っているものです: sudo gsettings set com.canonical.Unity.Panel systray-whitelist | gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/']$/,'shutter']/" | awk 'NF{print "\"" $0 "\""}' 何かが足りないと思います。 まず、文字列をgsettings set functionに正しくパイプしているかどうかわかりません。次に、gsettings get …

1
フラグpを指定したsed substitutionコマンドが、変更された出力を2回出力するのはなぜですか?
私のa.txtには次のものが含まれています。 apple 123 pear 1234 このコマンドを以下で実行すると、 sed 's/123/AAA/p' a.txt 私は得ると思った apple 123 AAA pear 1234 AAA4 sedはデフォルトで各行を自動的に印刷するためです。そして、パターン空間で修正された後の修正された出力を期待していました。しかし、実際の出力では、置換が2回出力されます。 apple AAA AAA pear AAA4 AAA4 何故ですか?

1
行をコメントアウトまたはコメント解除するシェルスクリプト-テスト
#ファイルの単一行から記号を削除しようとしています。行は現在 #/usr/bin/tvservice -o if [[ '$grep tvservice /etc/rc.local' =~ ^# ]] ; then sed -i '/^#.* tvservice /s/^#//' /etc/rc.local ; else echo 1 fi スクリプトに追加する前に、このコマンドが機能するかどうかをテストしてみます。実行すると、>シンボルが取得され、Ctrl+で実行を停止する必要がありますC 文字列をgrep正しく渡さないのですか?私はこれにかなり新しいです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.