user3029: Is there a easy tutorial on how to sweep a bc1 segwit address? I know electrum can sweep private keys, but has anyone ever really tried it and wrote a tutorial on it? 
I'm afraid of sending some coins to a bc1 paper wallet. I'm just looking for a tutorial or even a video of someone actually sweeping it.

user63569: As Bitcoin core v0.16.0 released You can import Bech32 Segwit address as @Willtech Answer. 
importprivkey "privkey" ( "label" ) ( rescan )

First Make sure that you are running the correct bitcoin core version
using getnetworkinfo
bitcoin-cli getnetworkinfo
{
  "version": 160000,
  "subversion": "/Satoshi:0.16.0/",
  "protocolversion": 70015,
  "localservices": "000000000000040d",
  "localrelay": true,
  "timeoffset": 0,
  "networkactive": true,
  "connections": 5
}

Now set address type to bech32 in your bitcoin.conf file
addresstype=bech32


so when "importing" a new private key, it creates a totally new wallet
  file? why cant it add it to an existing wallet? Also does this
  "import" know to import the 3 derivatives of addresses? 1xxx, 3xxx,
  and bc1xxx from a single private key?


No it doesn't create an new wallet file, it will just add it to your existing wallet file.

This way it should work 100% anyway if it didn't work. you still create your transaction manually and sign it using your private key. 

user75001: How to import private keys into Bitcoin Core (from a paper wallet or elsewhere)
In Bitcoin Core, you can use the importprivatekey command.
Once you have your private key, guard it very carefully keeping it very secure and, do the following to import into Bitcoin Core:

Open Bitcoin Core.
Go to Help --> Debug.
Go to the Console tab.
type: importprivatekey "{private key}" "{label optional}"
Create a new wallet backup.

Done. Note that you do not need to wait for Bitcoin Core to update before importing your private key. However, not all funds may show up in your wallet until it is completely up to date.
Hopefully, you have encrypted your wallet with a good passphrase that you will remember.

Usage:
>importprivkey "privkey" ( "label" ) ( rescan )
Adds a private key (as returned by dumpprivkey) to your wallet. Requires a new wallet backup.
Arguments:

"privkey"          (string, required) The private key (see dumpprivkey)
"label"            (string, optional, default="") An optional label
rescan               (boolean, optional, default=true) Rescan the wallet for transactions

Note: This call can take minutes to complete if rescan is true, during that time, other rpc calls
  may report that the imported key exists but related transactions are still missing, leading to temporarily incorrect/bogus balances and unspent outputs until rescan completes.
Examples:
Dump a private key
  > dumpprivkey "myaddress"
Import the private key with rescan
  > importprivkey "mykey"
Import using a label and without rescan
  > importprivkey "mykey" "testing" false
Import using default blank label and without rescan
  > importprivkey "mykey" "" false


3029: <p>Is there a easy tutorial on how to sweep a bc1 segwit address? I know electrum can sweep private keys, but has anyone ever really tried it and wrote a tutorial on it? </p>

<p>I'm afraid of sending some coins to a bc1 paper wallet. I'm just looking for a tutorial or even a video of someone actually sweeping it.</p>
 63569: <p>As Bitcoin core v0.16.0 released You can import Bech32 Segwit address as @Willtech Answer. </p>

<pre><code>importprivkey "privkey" ( "label" ) ( rescan )
</code></pre>

<p>First Make sure that you are running the correct bitcoin core version</p>

<p>using <code>getnetworkinfo</code></p>

<p><strong><code>bitcoin-cli getnetworkinfo</code></strong></p>

<pre><code>{
  "version": 160000,
  "subversion": "/Satoshi:0.16.0/",
  "protocolversion": 70015,
  "localservices": "000000000000040d",
  "localrelay": true,
  "timeoffset": 0,
  "networkactive": true,
  "connections": 5
}
</code></pre>

<p>Now set address type to bech32 in your bitcoin.conf file</p>

<pre><code>addresstype=bech32
</code></pre>

<blockquote>
  <p>so when "importing" a new private key, it creates a totally new wallet
  file? why cant it add it to an existing wallet? Also does this
  "import" know to import the 3 derivatives of addresses? 1xxx, 3xxx,
  and bc1xxx from a single private key?</p>
</blockquote>

<ul>
<li>No it doesn't create an new wallet file, it will just add it to your existing wallet file.</li>
</ul>

<p>This way it should work 100% anyway if it didn't work. you still create your transaction manually and sign it using your private key. </p>
 75001: <h1>How to import private keys into Bitcoin Core (from a paper wallet or elsewhere)</h1>

<p>In Bitcoin Core, you can use the <code>importprivatekey</code> command.</p>

<p>Once you have your private key, guard it very carefully keeping it very secure and, do the following to import into Bitcoin Core:</p>

<ol>
<li>Open Bitcoin Core.</li>
<li>Go to Help --> Debug.</li>
<li>Go to the Console tab.</li>
<li>type: <code>importprivatekey "{private key}" "{label optional}"</code></li>
<li>Create a new wallet backup.</li>
</ol>

<p>Done. Note that you do not need to wait for Bitcoin Core to update before importing your private key. However, not all funds may show up in your wallet until it is completely up to date.</p>

<p>Hopefully, you have encrypted your wallet with a good passphrase that you will remember.</p>

<blockquote>
  <h2>Usage:</h2>
  
  <p>>importprivkey "privkey" ( "label" ) ( rescan )</p>
  
  <p>Adds a private key (as returned by dumpprivkey) to your wallet. Requires a new wallet backup.</p>
  
  <p>Arguments:</p>
  
  <ol>
  <li>"privkey"          (string, required) The private key (see dumpprivkey)</li>
  <li>"label"            (string, optional, default="") An optional label</li>
  <li>rescan               (boolean, optional, default=true) Rescan the wallet for transactions</li>
  </ol>
  
  <p>Note: This call can take minutes to complete if rescan is true, during that time, other rpc calls
  may report that the imported key exists but related transactions are still missing, leading to temporarily incorrect/bogus balances and unspent outputs until rescan completes.</p>
  
  <p>Examples:</p>
  
  <p>Dump a private key<br>
  > dumpprivkey "myaddress"</p>
  
  <p>Import the private key with rescan<br>
  > importprivkey "mykey"</p>
  
  <p>Import using a label and without rescan<br>
  > importprivkey "mykey" "testing" false</p>
  
  <p>Import using default blank label and without rescan<br>
  > importprivkey "mykey" "" false</p>
</blockquote>
