I have this file
I have this file named filename and the content is
export k="multiline_v"
for example
export k="kdk=dkdk
kdkdkdk=kdkd
ldldldsgg"
another example:
export k="-----BEGIN CERTIFICATE-----
MIIENjCCAx4CCQDQDy8tPglm1DANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQDDAJD
QTENMAsGA1UECwwEU1NDRTENMAsGA1UECgwEU1NOQzEPMA0GA1UEBwwGRFVSSEFN
AQELBQADggEBAHgkLaegFG5CemXZfSocsaR/4zSbTgefgCTusrArUJGMO+2CNQRP
5lK9bXaXykyX7lJGsdZbS13Vy9sdQQVj0icW70bagIwl/p8mXbTzTgDdtCPsJLN7
uOkQRS646rp4nVEmp86imAgGWL+sdBG9WPhYsD0ZeDd28B6XBVMfm1k5DfPR9r6E
iigSB0hbPIlEbVpHQNsuHdpbKqGLjm4mNCpxdqjSMDNt9VjJAdjrZb7eQjuai95F
Vy9bwizvXDoE2pPJ056gkBYLS7nhS277lgs9Z+oLDa0bRFxw27pvNPvkaDv5dtyd
b/F+NL/Fe738KoZ3FO69Fl6GnNZiMOP50gc=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDBi+FpwvWVTWbY
XN/zvjDJPOtffs3o6EuQAAhE5XAgfudar8gcojAegL9mU3owa5+s0w0Je9eWDkQt
XkxewcAfcKZ08vALmZhyI8w5+dJPTQqGug1aObF+W+hUezKr/l6nyfT8cbdP/gPT
Wp0wfm6yJUFaecUgYh8I3gvsJ5XaV5OHilNVzz53nYXCAdXmSyocwef51XWchJh0
EYKZzw0V6t0CLuCnbAcICjQ3GNP5HaZ8cfXkIGDqmTJM4UCDfAMG7mkv0O13+7uW
b9PnaQEZ175Aj27f+ke4w2q3Bd0BGNVkmc8bvqlL6Q9GUGJJcF6VSpNVNP/Royr+
yyOY18Zk20TB3wZC3RI4qh8eATkToHoEM+THRgsoUGesx4r4axWEz3Ud2NxN8elk
5O8ghWqmxnEdcXDtyA90Io7ZWRjP8pE=
-----END PRIVATE KEY-----"
I use this to cut the name k
filename=myfile
key=$(head -n1 $filename | cut -d '=' -f 1 | cut -d ' ' -f 2)
Then I want to have another file named k and the content be v without ""
In the examples above it is gonna be
kdk=dkdk
kdkdkdk=kdkd
ldldldsgg
and
-----BEGIN CERTIFICATE-----
MIIENjCCAx4CCQDQDy8tPglm1DANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQDDAJD
QTENMAsGA1UECwwEU1NDRTENMAsGA1UECgwEU1NOQzEPMA0GA1UEBwwGRFVSSEFN
AQELBQADggEBAHgkLaegFG5CemXZfSocsaR/4zSbTgefgCTusrArUJGMO+2CNQRP
5lK9bXaXykyX7lJGsdZbS13Vy9sdQQVj0icW70bagIwl/p8mXbTzTgDdtCPsJLN7
uOkQRS646rp4nVEmp86imAgGWL+sdBG9WPhYsD0ZeDd28B6XBVMfm1k5DfPR9r6E
iigSB0hbPIlEbVpHQNsuHdpbKqGLjm4mNCpxdqjSMDNt9VjJAdjrZb7eQjuai95F
Vy9bwizvXDoE2pPJ056gkBYLS7nhS277lgs9Z+oLDa0bRFxw27pvNPvkaDv5dtyd
b/F+NL/Fe738KoZ3FO69Fl6GnNZiMOP50gc=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDBi+FpwvWVTWbY
XN/zvjDJPOtffs3o6EuQAAhE5XAgfudar8gcojAegL9mU3owa5+s0w0Je9eWDkQt
XkxewcAfcKZ08vALmZhyI8w5+dJPTQqGug1aObF+W+hUezKr/l6nyfT8cbdP/gPT
Wp0wfm6yJUFaecUgYh8I3gvsJ5XaV5OHilNVzz53nYXCAdXmSyocwef51XWchJh0
EYKZzw0V6t0CLuCnbAcICjQ3GNP5HaZ8cfXkIGDqmTJM4UCDfAMG7mkv0O13+7uW
b9PnaQEZ175Aj27f+ke4w2q3Bd0BGNVkmc8bvqlL6Q9GUGJJcF6VSpNVNP/Royr+
yyOY18Zk20TB3wZC3RI4qh8eATkToHoEM+THRgsoUGesx4r4axWEz3Ud2NxN8elk
5O8ghWqmxnEdcXDtyA90Io7ZWRjP8pE=
-----END PRIVATE KEY-----
If I could copy the file and find a command to do it in place, it would be great because the file would not change and the part I want to keep (the right side of the first = sign in the first line and all the other lines except the last ") would remain untouched, I would prefer to do this.
I think it is not possible. That is why I have to somehow copy and process it. How to do it such that everything stays untouched.
Input:
$ cat f1
export k="kdk=dkdk
kdkdkdk=kdkd
ldldldsgg"
Three easy steps:
IFS='=' read -r exp_var stuff < f1 # read 1st line, use '=' as delimiter;
# place first field in variable 'exp_var';
# place rest of line in variable 'stuff'
fname="${exp_var#* }" # strip off leading 'export ' leaving 'k'
sed '1s/^[^"]*"//; $s/"[^"]*$//' f1 > "${fname}" # 1s == 1st line, strip off everything up to first '"'
# $s == last line, strip off last '"' and anything after it (eg, white space, \r)
This generates:
$ cat k
kdk=dkdk
kdkdkdk=kdkd
ldldldsgg
Assuming file f1
is OP's original certificate file the above 3-lines of code generate:
$ cat k
-----BEGIN CERTIFICATE-----
MIIENjCCAx4CCQDQDy8tPglm1DANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQDDAJD
QTENMAsGA1UECwwEU1NDRTENMAsGA1UECgwEU1NOQzEPMA0GA1UEBwwGRFVSSEFN
AQELBQADggEBAHgkLaegFG5CemXZfSocsaR/4zSbTgefgCTusrArUJGMO+2CNQRP
5lK9bXaXykyX7lJGsdZbS13Vy9sdQQVj0icW70bagIwl/p8mXbTzTgDdtCPsJLN7
uOkQRS646rp4nVEmp86imAgGWL+sdBG9WPhYsD0ZeDd28B6XBVMfm1k5DfPR9r6E
iigSB0hbPIlEbVpHQNsuHdpbKqGLjm4mNCpxdqjSMDNt9VjJAdjrZb7eQjuai95F
Vy9bwizvXDoE2pPJ056gkBYLS7nhS277lgs9Z+oLDa0bRFxw27pvNPvkaDv5dtyd
b/F+NL/Fe738KoZ3FO69Fl6GnNZiMOP50gc=
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDBi+FpwvWVTWbY
XN/zvjDJPOtffs3o6EuQAAhE5XAgfudar8gcojAegL9mU3owa5+s0w0Je9eWDkQt
XkxewcAfcKZ08vALmZhyI8w5+dJPTQqGug1aObF+W+hUezKr/l6nyfT8cbdP/gPT
Wp0wfm6yJUFaecUgYh8I3gvsJ5XaV5OHilNVzz53nYXCAdXmSyocwef51XWchJh0
EYKZzw0V6t0CLuCnbAcICjQ3GNP5HaZ8cfXkIGDqmTJM4UCDfAMG7mkv0O13+7uW
b9PnaQEZ175Aj27f+ke4w2q3Bd0BGNVkmc8bvqlL6Q9GUGJJcF6VSpNVNP/Royr+
yyOY18Zk20TB3wZC3RI4qh8eATkToHoEM+THRgsoUGesx4r4axWEz3Ud2NxN8elk
5O8ghWqmxnEdcXDtyA90Io7ZWRjP8pE=
-----END PRIVATE KEY-----