答えて
あなたはこのようなのsedやawkのようにデータを操作するために利用可能な外部ツールのようなものを使用することができますありがとうございました。このツールは、コマンドラインから直接使用することも、bashスクリプトに組み込むこともできます。
例:
$ a="This is a test program that will print
Hello World!
Test programm Finished"
$ sed -E '2s/(.{4})/&\*/' <<<"$a" #Or <file
#Output:
This is a test program that will print
Hell*o World!
Test programm Finished
上記のテストでは、我々はLINE2の第四文字の後にアスタリスクを入力します。
ファイル上で動作し、ファイルに直接変更を加えたい場合は、使用sed -E -i '....'
同じ結果にもGNUのawkを用いて達成することができる。純粋なbashで
awk 'BEGIN{OFS=FS=""}NR==2{sub(/./,"&*",$4)}1' <<<"$a"
あなたと出力の上に達成することができます
while read -r line;do
let ++c
[[ $c == 2 ]] && printf '%s*%s\n' "${line:0:4}" "${line:4}" || printf '%s\n' "${line}"
# alternative:
# [[ $c == 2 ]] && echo "${line:0:4}*${line:4}" || echo "${line}"
done <<<"$a"
#Alternative for file read:
# done <file >newfile
変数が単一行の場合、ループは必要ありません。
printf '%s*%s\n' "${a:0:4}" "${a:4}"
# Or even
printf '%s\n' "${a:0:4}*${a:4}" #or echo "${a:0:4}*${a:4}"
@DCuserようこそ。純粋なbashソリューションも含めるようにします。 –
@DCuser純粋なbash溶液が追加されました。 –
しかし、この方法は修正された行を印刷するだけで、行を含むファイルの内容を置き換えることはありません...そうですか? – DCuser
私はsed
を使用することをお勧めします。あなたは第五列の2行目にアスタリスクを挿入する場合:
sed -r "2s/^(.{5})(.*)$/\1*\2/" myfile.txt
2s
あなたは2行目に置換を実行しようとしていると言います。 ^(.{5})(.*)$
は、行の先頭から5文字、その後のすべての文字を取っていると言います。 \1*\2
は、最初の一致(つまり5つの先頭文字)から文字列を作成してから、*
に2番目の一致文字(つまり、行末までの文字)を作成しているとします。
あなたの行と列は、あなたが行うことができます変数である場合はそのような何か:
_line=5
_column=2
sed -r "${_line}s/^(.{${_column}})(.*)$/\1*\2/" myfile.txt
- 1. 入れ替え位置が
- 2. ファイルの特定の位置に文字を挿入する
- 3. テキストファイル内の文字の位置を特定する方法(C++)
- 4. 特定の文字/文字列のSQLite文字列の値の位置を特定する方法は?
- 5. 特定のファイル位置で2文字をgrepする方法
- 6. 文字列の特定の位置に特定の文字の発生をカウントする方法 - MYSQL 5.5
- 7. 文字列の順列と特定の文字列の位置
- 8. 配列を特定の位置でarrayListに並べ替える
- 9. php:マスクregexpと文字を入れ替える方法
- 10. 特定の文字を行に置き換える、C++
- 11. 特定の位置のArrayListにオブジェクトを挿入する方法
- 12. C#:2つのwinformコントロールの位置を入れ替える方法
- 13. ファイル内の特定の位置に行を挿入する簡単な方法
- 14. 特定の文字列でunixの行を数える方法
- 15. 特定の位置でutf-8に文字をデコードする方法
- 16. 特定の行の特定の文字で始まる単語を置き換える方法は?
- 17. 偶数位置での文字の置き換え方法(と奇数位置による)
- 18. 文字列を特定の位置に設定します
- 19. 特殊文字とキーボードショートカットを入力時に置き換える
- 20. 数字の位置をoracleの特殊文字で置き換える方法は?
- 21. bashスクリプトで^ @文字を置き換える方法
- 22. テキストファイル内の文字位置を特定して保存する方法
- 23. sql result-setの行の位置を特定する方法は?
- 24. ルビの特定の位置に特定の文字を出力して文字を追加するには?
- 25. uitableviewの特定のセクションの行を並べ替える方法
- 26. 特殊文字とその次の文字列を1つの文字列に置き換える方法
- 27. リストに特定の位置に挿入
- 28. XML文字列の特定のノードの値を置き換える方法は?
- 29. 指定された位置の文字列をPowerShellに置き換えます。
- 30. StackPanelでの2つのキャンバスの位置の入れ替え
あなたは部分文字列を使用することができます。https://stackoverflow.com/documentation/bash/502/shell-parameter-expansion/ 1654/substrings-and subarrays#t = 201704131226548345467 – Sundeep
はい、可能です – Kent
サブストリングを使用して1行だけで動作します。テストファイル内の特定の行を変更する(文字を追加する)にはどうすればよいですか? – DCuser